C语言程序设计c++ 输入整数n(n在1-20之间),输出蛇形矩阵。要求中间最小,然后往外慢慢变大。如输入3,则输出 789 612 543 要求有一个数字一个数字出现的动画效果
时间: 2023-11-28 12:48:45 浏览: 32
以下是一个简单的C++程序,可以实现你的要求:
```cpp
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
int main() {
int n, k = 1;
cout << "请输入一个在1-20之间的整数n:";
cin >> n;
int a[20][20] = {0};
int i = 0, j = n - 1, t = 1; // i,j表示当前所在位置,t表示当前填充的数
while (t <= n * n) {
a[i][j] = t++;
if (i == j) // 中心位置
break;
if (k % 2) { // 奇数次填充
j--;
if (i < j) {
while (i < j && t <= n * n)
a[++i][j] = t++;
while (i > t / n && t <= n * n)
a[i][--j] = t++;
}
} else { // 偶数次填充
i++;
if (i < j) {
while (i < j && t <= n * n)
a[i++][j] = t++;
while (j > t / n && t <= n * n)
a[i][--j] = t++;
}
}
k++;
}
// 动画效果
system("cls");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(3) << a[i][j];
Sleep(100);
}
cout << endl;
}
return 0;
}
```
程序运行时,首先要求用户输入一个在1-20之间的整数n,并根据用户的输入生成蛇形矩阵。然后,程序通过循环遍历数组并输出每个元素,每输出一个元素就暂停一段时间,从而实现动画效果。由于输出的元素之间使用了setw()函数进行空格对齐,因此可以使输出的矩阵更加美观。
需要注意的是,为了实现动画效果,我们在输出每个元素之后使用了Sleep()函数暂停了一段时间。这个时间可以根据需要进行调整,但建议不要设置得太小,否则可能会导致输出过快而无法看清每个元素的变化。