对于二维数组{{4,7,3},{5,3,9},{10,6,12}}求该数组的最大值,最小值,各行元素值得和及主对角线元素的和。
#include<stdio.h>
int main(void)
{
double mat[3][3];
double sumArr[3];
int i,j;
struct number
{
double num;
int x;
int y;
}min={1000,0,0},max={0};
double sum=0,left=0,right=0;
for(i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%lf",&mat[i][j]);
for(i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
if(mat[i][j]>max.num)
{
max.num=mat[i][j];
max.x=i;
max.y=j;
}
if(mat[i][j]<min.num)
{
min.num=mat[i][j];
min.x=i;
min.y=j;
}
if(i==j)
right+=mat[i][j];
if(i+j==3)
left+=mat[i][j];
sum+=mat[i][j];
}
}
int k = 0;
for(i=0;i<3;i++)
{
for (j=0;j<3;j++){
sumArr[k]+=mat[i][j];
}
k++;
}
printf("左对角线和为 %.3lf,右对角线和为 %.3lf,总和为 %.3lf\n",left,right,sum);
for(i=0;i<3;i++)
printf("第%d行元素和为 %.3lf\n",i+1,sumArr[i]);
printf("最大值为 %.3lf,坐标为%d,%d\n",max.num,max.x,max.y);
printf("最小值为 %.3lf,坐标为%d,%d\n",min.num,min.x,min.y);
return 0;
}
代码如下,如有帮助,请采纳一下,谢谢。
#include<stdio.h>
#include<string.h>
bool light[10000];
int main(){
int a[3][3] = {{4,7,3},{5,3,9},{10,6,12}};
int max = a[0][0];
int min = a[0][0];
int sum = 0;
int sumDuijiaoxian = 0; //
for (int i = 0; i < 3; i++)
{
for (int j = 0;j < 3; j++)
{
if (a[i][j] > max)
{
max = a[i][j] ;
}
if (a[i][j] < min)
{
min = a[i][j];
}
sum += a[i][j];
//
if (i == j)
{
sumDuijiaoxian += a[i][j];
}
}
}
printf("max = %d; min = %d; sum = %d; sumDuijx = %d\n",max,min,sum,sumDuijiaoxian);
getchar();
getchar();
return 0;
}