但求过程001 发表于 5 天前

求助

题目:求一个3*3矩阵对角线元素之和

程序如下:
#include <stdio.h>

void main()
{
        int i,j,sum=0,a;
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        scanf("%d",&a);
                }
        }
        for(i=0;i<3;i++)
        {
                sum+=a;
        }
        printf("%d\n",sum);
}

我运行没出错,但是就是按照scanf输入数字回车没反应,程序是哪里不对吗?

FishC 发表于 5 天前

鱼油你好!你贴出的程序不完整,我来帮你补充完整并解释一下思路。

题目通常指求3x3矩阵的主对角线(从左上到右下)元素之和。主对角线的元素下标满足 i == j。

完整程序如下:


#include <stdio.h>

int main()
{
    int a;
    int i, j, sum = 0;
   
    // 输入矩阵
    printf("请输入9个整数:\n");
    for(i = 0; i < 3; i++)
      for(j = 0; j < 3; j++)
            scanf("%d", &a);
   
    // 计算主对角线之和
    for(i = 0; i < 3; i++)
      sum += a;
   
    printf("主对角线元素之和为:%d\n", sum);
   
    return 0;
}


如果要计算两条对角线(主对角线和副对角线)的总和,需要注意中心元素不要重复计算:


#include <stdio.h>

int main()
{
    int a;
    int i, j, sum = 0;
   
    printf("请输入9个整数:\n");
    for(i = 0; i < 3; i++)
      for(j = 0; j < 3; j++)
            scanf("%d", &a);
   
    // 分别计算两条对角线
    for(i = 0; i < 3; i++)
    {
      sum += a;         // 主对角线
      sum += a;   // 副对角线
    }
   
    // 减去重复的中间元素
    sum -= a;
   
    printf("两条对角线元素之和为:%d\n", sum);
   
    return 0;
}


说明:
1. 程序中使用 int main() 而不是 void main(),这是标准写法。
2. 第一个程序只计算主对角线,第二个程序计算两条对角线总和。
3. 副对角线元素下标满足 i + j == 2。

选择你需要的版本使用即可。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

不二如是 发表于 5 天前

“输入数字回车没反应”,通常不是程序坏了,而是因为:

scanf("%d",&a); 一共要读 9个整数,所以你只输入一次回车,程序还会继续等,直到9个数都输完。
就是:少输入了,程序还在等后面的8个或若干个数字。

例如这样输入都可以:

1 2 3
4 5 6
7 8 9

或者一行输完:

1 2 3 4 5 6 7 8 9
最后才会输出结果。

你的代码逻辑是对的,功能就是求主对角线:

a + a + a

完整可写成:

#include <stdio.h>

int main()
{
    int i, j, sum = 0, a;
    for(i = 0; i < 3; i++)
    {
      for(j = 0; j < 3; j++)
      {
            scanf("%d", &a);
      }
    }

    for(i = 0; i < 3; i++)
    {
      sum += a;
    }

    printf("%d\n", sum);
    return 0;
}

但求过程001 发表于 5 天前

不二如是 发表于 2026-3-11 21:47
“输入数字回车没反应”,通常不是程序坏了,而是因为:




我想再问一下,你举的两个输入的例子都可以运行成功,那第二个一行输完的不也是只按了一次回车吗
页: [1]
查看完整版本: 求助