使用二维数组,任意输入一个5行5列的矩阵,计算该矩阵对角线元素之和并输出.

如题所述

for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==j)
sum1=sum1+a[i][j];//正向对角线之和
if(i+j==5)
sum2=sum2+a[i][j];//反向对角线之和
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-29
这个可以输出两条对角线的和,周边元素之和以及输出该二维数组中最小的元素;
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
int main()
{
int arr[5][5] = {{0}};
int i,j;
srand(time(NULL));
for (i = 0;i < 5;i++)
{
for (j = 0;j< 5;j++)
{
arr[i][j] = rand() % 100; // 生成随机5x5矩阵
}
}
printf("Array[%d][%d] is: \n", 5, 5);
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d\t", arr[i][j]); // 输出矩阵
}
printf("\n");
}
//求两条对角线之和
int sum1=0,sum2=0,s=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==j)
sum1+= arr[i][j];
else if(i+j==4)
sum2+=arr[i][j];
}
s=sum1+sum2;
}
printf("两条对角线元素之和:%d\n",s);
//求周边元素的和
int sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==0||j==0||i==4||j==4)
{
sum+=arr[i][j];
}
}
}
printf("周边元素之和为:%d",sum);
//求最小值
int m = arr[0][0];
for (i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
if(arr[i][j] < m)
m = arr[i][j];
}
}
printf("最小值为:%d\n",m);
system("pause");
}
第2个回答  2017-12-04
if (i+j==4)
第3个回答  2020-06-06
几点结束可喜欢次小激动你打卡苏卡达那次吃鸡你打卡手机嘻哈刷卡手续手机打:洗超大你打卡西恩出等级
相似回答