输入一个n*n的double二维数组,用C语言找到它的对角矩阵,下三角矩阵,上三角矩阵。 输入: 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 输出: diagonal: 1 0 0 0 0 0 7 0 0 0 0 0 13 0 0 0 0 0 19 0 0 0 0 0 25 upper triangular: 1 2 3 4 5 0 7 8 9 10 0 0 13 14 15 0 0 0 19 20 0 0 0 0 25 lower triangular: 1 0 0 0 0 6 7 0 0 0 11 12 13 0 0 16 17 18 19 0 21 22 23 24 25
时间: 2023-05-24 15:02:20 浏览: 87
下面是对角矩阵,下三角矩阵和上三角矩阵的C语言代码:
```
#include <stdio.h>
void printDiagonal(double arr[][5], int n){
printf("diagonal:");
int i, j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j){
printf(" %g", arr[i][j]);
}else{
printf(" %d", 0);
}
}
}
printf("\n");
}
void printLowerTriangular(double arr[][5], int n){
printf("lower triangular:");
int i, j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j<=i){
printf(" %g", arr[i][j]);
}else{
printf(" %d", 0);
}
}
}
printf("\n");
}
void printUpperTriangular(double arr[][5], int n){
printf("upper triangular:");
int i, j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j>=i){
printf(" %g", arr[i][j]);
}else{
printf(" %d", 0);
}
}
}
printf("\n");
}
int main(){
double arr[5][5]={
{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}
};
printDiagonal(arr, 5);
printLowerTriangular(arr, 5);
printUpperTriangular(arr, 5);
return 0;
}
```
上面的代码会输出以下结果:
```
diagonal: 1 0 0 0 0 0 7 0 0 0 0 0 13 0 0 0 0 0 19 0 0 0 0 0 25
lower triangular: 1 0 0 0 0 6 7 0 0 0 11 12 13 0 0 16 17 18 19 0 21 22 23 24 25
upper triangular: 1 2 3 4 5 0 7 8 9 10 0 0 13 14 15 0 0 0 19 20 0 0 0 0 25
```