尊贵vip用户 发表于 2019-10-16 16:00:12

求助c语言经典例题中的第38题中的求3*3的矩阵对角数之和

#include "stdio.h"
#include "math.h"
void main()
{
intx,y,z=0,a;
for(x=0;x<3;x++)
{
   for(y=0;y<3;y++)
    {
      scanf("%d",&a);
      if((x==y)||(fabs(x-y)==2))
      {z=z+a;}
    }
}
printf("%d",z);
}
为什么不行?

wp231957 发表于 2019-10-16 16:17:03

,a;这不是2*2吗还有 x==y 这个判断也不行

尊贵vip用户 发表于 2019-10-16 18:43:20

wp231957 发表于 2019-10-16 16:17
,a;这不是2*2吗还有 x==y 这个判断也不行

但是我看参考答案是float a,sum=0;不是一样的吗。。

wp231957 发表于 2019-10-16 20:28:25

尊贵vip用户 发表于 2019-10-16 18:43
但是我看参考答案是float a,sum=0;不是一样的吗。。

2*2矩阵和3*3矩阵能一样吗

superbe 发表于 2019-10-17 12:20:13

本帖最后由 superbe 于 2019-10-17 21:02 编辑

#include <stdio.h>
#define N 3//矩阵行列数

int main()
{
    int i, j, sum = 0;
    int arr;

    printf("输入 %d 个整数:", N * N);
    for(i = 0; i < N; i ++)
      for(j = 0; j < N; j ++)
            if(scanf("%d", &arr) != 1){
                printf("输入错误!");
                return 0;
            }

    printf("原始矩阵是:\n");
    for(i = 0; i < N; i ++){
      for(j = 0; j < N; j ++) printf("%d ", arr);
      printf("\n");
    }

    for(i = 0; i < N; i ++)
      for(j = 0; j < N; j ++)
            if(i == j || i + j == N - 1 ) sum += arr;

    printf("对角线元素之和是:%d\n", sum);

    return 0;
}

尊贵vip用户 发表于 2019-10-17 17:49:38

wp231957 发表于 2019-10-16 20:28
2*2矩阵和3*3矩阵能一样吗

数组不是从0开始吗。。
页: [1]
查看完整版本: 求助c语言经典例题中的第38题中的求3*3的矩阵对角数之和