编写程序,生成一个n阶正方形矩阵,其中0位于主对角线,1位于主对角线上方和下方的位置中,2位于更上方和下方,以此类推,写出c语言代码
时间: 2024-10-12 12:17:30 浏览: 12
在C语言中,你可以通过嵌套循环来实现这个任务。下面是一个简单的示例,用于生成一个指定大小(n)的矩阵:
```c
#include <stdio.h>
void printMatrix(int n) {
int matrix[n][n];
int num = 1; // 当前数字
for (int i = 0; i < n; i++) { // 行
for (int j = 0; j < n; j++) { // 列
if (i == j || abs(i - j) == 1) { // 主对角线和主对角线上下位置
matrix[i][j] = num++;
} else {
matrix[i][j] = 0; // 其他位置填0
}
}
}
// 打印矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int size;
printf("Enter the order of the square matrix: ");
scanf("%d", &size);
printMatrix(size);
return 0;
}
```
在这个代码中,我们首先初始化一个大小为n×n的二维数组matrix。然后,对于每个元素,如果它在主对角线上或主对角线上方或下方的位置,我们就将其赋值为递增的数(num++); 否则,设置为0。最后,我们遍历整个矩阵并打印出来。