用C语言编程,求大佬解答。

对于二维数组{{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;
}