如何使用C语言根据用户输入的主对角线和其他元素值,创建并打印一个对应的数字方阵?例如,当输入为1和5时应输出什么样的矩阵?
时间: 2024-12-15 12:21:37 浏览: 17
“幻方阵”是指一个AN×N矩阵
5星 · 资源好评率100%
在C语言中,你可以通过循环结构来实现这个功能。以下是一个简单的示例程序,它会根据用户输入的两个数(主对角线的元素),构建一个大小为n*n的方阵,并将其他元素设为0,然后打印出来。假设我们让用户输入的两个数分别为a和b:
```c
#include <stdio.h>
int main() {
int n, a, b;
printf("请输入矩阵的行数n以及主对角线的第一个元素a:");
scanf("%d %d", &n, &a);
// 确保输入的行数大于0
if (n <= 0) {
printf("错误:行数必须大于0.\n");
return 1;
}
// 初始化一个n*n的二维数组,其他元素设为0
int matrix[n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(i == j) { // 主对角线元素
matrix[i][j] = a;
} else {
matrix[i][j] = 0; // 其他元素为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;
}
```
如果用户输入a=1和b=5,那么输出的矩阵将会是一个n*n的方阵,除了对角线上外的所有元素都是0,对角线上的元素从左上角到右下角依次为1、0、0、...、0(共n个0)。例如,如果n=4,则矩阵会像这样:
```
1 0 0 0
0 0 0 0
0 0 0 0
0 0 0 5
```
阅读全文