30/09/2018, 23:07
Giúp mình bài toán ma trận vuông xoắn ốc, lỗi chạy chương trình
int main()
{
int table[10][10];
int n,huong;
int dem;
int right,left,top,bottom;
cout << "Nhap vao cap cua mat ( 2 <= n <= 10): ";
cin >> n;
top = 0; left = 0;
right = n-1 ;bottom = n-1;
huong = 1;
dem = 1;
while ( dem <= n*n)
{
switch (huong)
{
case 1:
for(int i = left; i <= right; i++)
{
table[top][i] = dem++;
}
top ++;
huong = 2;
break;
case 2:
for(int i = top; i <= bottom; i++)
{
table[i][right] = dem++;
}
right --;
huong = 3;
break;
case 3:
for (int i = right; i >= 0; i--)
{
table[bottom][i] = dem++;
}
bottom --;
huong = 4;
break;
case 4:
for (int i = bottom; i <= top; i--)
{
table[i][left] = dem++;
}
left ++;
huong = 1;
break;
}
}
for(int i = 0; i < n; i++)
{
cout << endl;
for(int j = 0; j < n; j++)
cout << table[i][j];
}
return 0;
}
Mình dùng Switch case, giảm dòng, giảm cột để tạo hướng đi xoắn ốc theo chiều kim đồng hồ.
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Bài liên quan
Bạn nên nêu rõ chi tiết đề bài, chỉ rõ ra bạn sai ở đâu, miêu tả thuật toán đang giải như thế nào, nếu có thể thì nên thêm những dòng comment ở những chỗ phức tạp.
Chứ bạn quăng cái code lên đây + nói sơ sơ về cái đề bài ở title topic thì ai hứng mà giúp bạn!
P/S: Markdown code còn thiếu nữa, nên tôn trọng nhé!
chuẩn luôn, vô vứt cho cái code thế, chẳng nói chẳng rằng gì, đề bài cũng chả có, ai biết chác cũng chả buồn giúp đâu. Cùy với bạn,
Xin lỗi tại gấp quá,Viết chương trình gán các giá trị nguyên từ 1 đến n*n cho các phần tử của ma trận vuông cấp n, với n được nhập .
This post was flagged by the community and is temporarily hidden.
This post was flagged by the community and is temporarily hidden.