c语言,使用数组将矩阵n*n对角线上的元素置为一其余为零

c语言,使用数组将矩阵n*n对角线上的元素置为一其余为零
2025-02-01 21:00:32
推荐回答(3个)
回答1:

#include
#define N 20
void main()
{
int a[N][N]={0},n,i,j;
printf("输入n:");
scanf("%d",&n); //输入矩阵阶数
for( i=0; i a[i][i]=1;
for(i=0;i for(j=0;j {
printf("%2d",a[i][j]); //输出矩阵
if(j==n-1) printf("\n");
}
}

回答2:

#include

#define N 5 // 矩阵的大小

int main()
{
int i, j;
int matrix[N][N];

// 将矩阵初始化为0
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
matrix[i][j] = 0;
}
}

// 设置对角线上的元素为1
for (i = 0; i < N; ++i) {
matrix[i][i] = 1;
}

// 输出矩阵的值
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}

return 0;
}

回答3:

按照你的要求编写的Java程序如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

public class BBB {

public static void main(String[] args) {

final int N=5;

int a[][]=new int[N][N];

for(int i=0;i
for(int j=0;j
if(i==j || i==N-1-j){

a[i][j]=1;

}

}

}

for(int i=0;i
for(int j=0;j
System.out.print(a[i][j]+" ");

}

System.out.println();

}

}

}