蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输入 输入有多组测试数据。 每组数据由一个正整数N组成。(N不大于100) 输出 对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。 矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。 用c语言
时间: 2024-10-25 17:16:21 浏览: 21
在C语言中,我们可以使用嵌套循环以及一些基本的数组操作来生成蛇形矩阵。以下是一个简单的函数,用于生成给定大小的蛇形矩阵:
```c
#include <stdio.h>
void printSnakeMatrix(int n) {
int matrix[n * n], num = 1, row = 0;
for (int i = 0; i < n * n; i++) {
if (row == n / 2 || row + i >= n) { // 当行数达到中间或超过时,翻转方向
row++;
num += row - 1; // 从中间向两边递减
} else {
num -= row; // 从左到右递增
}
matrix[i] = num;
printf("%d ", matrix[i]); // 输出当前数字并保留空格
if ((i + 1) % n == 0) { // 到达一行结束
printf("\n"); // 换行
}
}
}
int main() {
int N;
while (scanf("%d", &N) != EOF && N <= 100) {
printSnakeMatrix(N);
printf("\n\n"); // 防止相邻两组数据间的干扰,加入额外的空行
}
return 0;
}
```
这个`printSnakeMatrix`函数首先初始化一个大小为n*n的数组,然后根据蛇形矩阵的规则逐个填充数字。当到达矩阵的中心线时,它会改变行的方向继续填充。注意在输出过程中保持空格,并在每行结束后换行。
阅读全文