01/10/2018, 00:55

Cho em hỏi về lập trình C dạng hình cây thông

em thấy có nhiều bài tập C nó yêu câu xuất ra màn hình cay thông rồi hình chữ nhật này nọ cho em hỏi cái đó họ bảo chỉ dùng for lồng nhau nhưng em k hiểu sao nó ra dc vậy
ai giỏi gợi ý giúp em với em cảm ơn

X viết 03:02 ngày 01/10/2018

Cứ hình dung trong đầu có một cái mảng 2 chiều là làm được thôi

bphvcg viết 02:55 ngày 01/10/2018
#include <iostream>
#include <cstring>

using namespace std;

void main(void)
{
	int n;
	do 
	{
		cout << "Nhap vao so n la canh cua ma tran la so le: " ;
		cin >> n;
	} while (n % 2 == 0 || n<5);

	// ve hinh tam giac tren
	for (int i = 0; i < n / 2 + 1; i++)
	{
		for (int j = 0;j < n; j++)
		{
			if (j == n / 2 - i)
			{
				for (int k = n / 2 - i; k <= n / 2 + i; k++)
				{
					cout << "*";
				}
			}
			else
				cout << " ";
		}
		cout << endl;
	}
	
	// đoạn này mình xác định gốc sao cho đẹp thôi bạn có thể tự code lại
	int k;
	if (n <= 21)
		k = 1;
	else if (n > 21 && n <= 41)
		k = 3;
	else
		k = 5;

	// ve hinh chu nhat duoi
	for (int i = 0; i < n/2; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (j>=n/2-k && j<= n/2+k)
				cout << "*";
			else
				cout << " ";

		}
		cout << endl;
	}
}

Bạn suy nghĩ một chút nhé, như mảng 2 chiều thôi. mình thương vẽ mảng ra và chạy tay ( hơi củ chuối nhỉ). Lần sau bạn làm rồi post code lên nhé sai thì sửa không phải ngại!

Bài liên quan
0