注册 登录
编程论坛 C语言论坛

输入一个5*5的矩阵(#define N 5),求所有元素的和,主对角线元素之和,最大值及最小值所在位置

yeyeyeyeye 发布于 2019-11-04 22:17, 3579 次点击
输入一个5*5的矩阵(#define  N  5),求
(1)所有元素的和
(2)主对角线元素之和
(3)最大值及最小值所在位置

#include<stdio.h>
main()
{
    double mat[5][5];
    int i,j;

【 此处 补充定义其它所需变量 】  

    for(i=0;i<5;i++)
        for (j=0;j<5;j++)
            scanf("%lf",&mat[i][j]);
   
【完成其余代码,实现该题(1)(2)(3)的功能】   
    return;
}

4 回复
#2
adminzj2019-11-05 02:10
累加
+1  -1
对比查找记i j的值
#3
纯蓝之刃2019-11-05 08:43
程序代码:
#include<stdio.h>

int main(void)
{
    double mat[5][5];
    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<5;i++)
        for (j=0;j<5;j++)
            scanf("%lf",&mat[i][j]);

    for(i=0;i<5;i++)
    {
        for (j=0;j<5;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==5)
                left+=mat[i][j];

            sum+=mat[i][j];
        }
    }

    printf("左对角线和为 %.5lf,右对角线和为 %.5lf,总和为 %.5lf\n",left,right,sum);
    printf("最大值为 %.5lf,坐标为%d,%d\n",max.num,max.x,max.y);
    printf("最小值为 %.5lf,坐标为%d,%d\n",min.num,min.x,min.y);

    return 0;
}


[此贴子已经被作者于2019-11-5 12:50编辑过]

#4
yeyeyeyeye2019-11-06 17:52
回复 2楼 adminzj
谢谢
#5
yeyeyeyeye2019-11-06 17:53
回复 3楼 纯蓝之刃
厉害👍 感谢大佬
1