C语言 输入一个5行5列的数组。1.求数组主对角线上元素的和。2.求出辅对角线上元素的积。3.找出主对角线上最大的值及其位置
主对角线是什么:
在一个n阶方阵(或是n阶行列式)中,从左上角到右下角这一斜线上的n 个元素的位置,叫做n 阶方阵(或行列式)的主对角线
辅对角线是什么:
就是和主对角线相对应的对角线,从矩阵的右上角到左下角,也叫次对角线
代码:
#include <stdio.h>
void main(){
int num[5][5];
int i,j;
printf(“请输入一组5 * 5的数列:\n”);
for(i=0;i<5;i++)//输出5 * 5的数组
for(j=0;j<5;j++)
scanf("%d",&num[i][j]);
int s=0;
for(i=0;i<5;i++)//求主对角线上元素的和
for(j=0;j<5;j++)
if(i==j)
s=s+num[i][j];
printf(“主对角线上元素的和为:%d\n”,s);
int m=1;
for(i=0;i<5;i++)//求辅对角线上元素的积
for(j=0;j<5;j++)
if(i+j==4)
m=m*num[i][j];
printf(“辅对角线上元素的积为:%d\n”,m);
int max=num[0][0];
for(i=0;i<5;i++)//求出主对角线最大的值
for(j=0;j<5;j++)
if(i==j&&num[i][j]>max)
max=num[i][j];
printf(“主对角线上最大的值为:%d\n”,max);
for(i=0;i<5;i++)//求出主对角线最大的值的位置
for(j=0;j<5;j++)
if(i==j)
if(num[i][j]==max){
printf(“其位置为%d行,%d列\n”,i+1,j+1);
break;}
}