问题描述
编写程序,由用户输入一个整数n,然后系统随机生成一个nx n矩阵,输出该矩阵,并分别求出其主对角线元素和次对角线元素之和。
例如下面为一个3 x 3的矩阵。
2 0 5
3 1 8
6 7 9
其中: 2、1、9为主对角线上的元素,5、1、6为次对角线上的元素。
代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n;
printf("输入一个整数:");
scanf("%d",&n);
int i,j,a[n][n];
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
a[i][j]=rand()%10;
}
}
printf("输出的%d*%d矩阵为:\n",n,n);
for(i=0; i<n; i++)
{
int count=0;
for(j=0; j<n; j++)
{
printf("%2d",a[i][j]);
count++;
if(count==n)
{
printf("\n");
}
}
}
int sum1=0,sum2=0;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(i==j)
{
sum1+=a[i][j];
}
if(i+j==n-1)
{
sum2+=a[i][j];
}
}
}
printf("主对角元素和为:%d",sum1);
printf("次对角元素和为:%d",sum2);
return 0;
}