C语言编程一个N阶方阵,要求方阵副对角线上的元素为2,其余元素为0,输出该方阵
时间: 2023-07-14 08:14:30 浏览: 55
以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入方阵的阶数 n:");
scanf("%d", &n);
int matrix[n][n]; // 定义一个 n 阶方阵
// 初始化方阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) { // 主对角线上的元素为 0
matrix[i][j] = 0;
} else if (i + j == n - 1) { // 副对角线上的元素为 2
matrix[i][j] = 2;
} else { // 其余元素为 0
matrix[i][j] = 0;
}
}
}
// 输出方阵
printf("生成的方阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
代码逻辑:
1. 首先通过 `scanf` 函数获取用户输入的方阵阶数 `n`;
2. 然后定义一个 `n` 阶二维数组 `matrix`,用于存储生成的方阵;
3. 接着通过两个 `for` 循环初始化方阵,主对角线上的元素为 0,副对角线上的元素为 2,其余元素为 0;
4. 最后再通过两个 `for` 循环输出生成的方阵。
例如,当用户输入 `n=5` 时,程序输出的方阵如下:
```
生成的方阵为:
0 0 0 0 2
0 0 0 2 0
0 0 2 0 0
0 2 0 0 0
2 0 0 0 0
```