为了账号安全,请及时绑定邮箱和手机立即绑定

这个程序运行结果为啥S的值不对?

这个程序运行结果为啥S的值不对?

C
做一个好码农 2017-04-27 00:08:25
#include<stdio.h> void main() { int a[5][5]; int i,j,s=0,ch; printf("输入一个5*5行列式:\n"); for(i=0;i<5;i++) for(j=0;j<5;j++) { scanf("%d",&a[i][j]); } for(i=0;i<5;i++) for(j=0;j<i;j++) { ch=a[i][j]; a[i][j]=a[j][i]; a[j][i]=ch; } printf("转置行列式为:\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%3d",a[i][j]); printf("\n"); } for(i=0;i<5;i++) for(j=0;j<5;j++) if(i==j||i+j==4) s=s+a[i][j]; printf("%d\n",s-a[2][2]); }
查看完整描述

1 回答

?
望远

TA贡献1017条经验 获得超1032个赞

printf("%d\n",s-a[2][2]); 你这里多此一举减去了a[2][2],循环计算主副对角线之和的时候没有重复加上s[2][2]
查看完整回答
1 反对 回复 2017-04-27
  • 做一个好码农
    做一个好码农
    为什么没有重复加a[2[]2]呀?可以帮忙解答一下吗?
  • 望远
    望远
    你是从a[0][0]开始遍历整个数组,在a[2][2]的时候符合条件加到了s上,继续往后遍历,什么时候多加了a[2][2]呢?你想想就知道。
  • 1 回答
  • 0 关注
  • 1232 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信