|
发表于 2017-10-26 22:26:22
|
显示全部楼层
本帖最后由 BngThea 于 2017-10-26 22:27 编辑
printf("%d\n",a[j]);
上述语句在执行的时候, i 和 j 已经都等于3
所以你其实在打印a[3][3],显然已经越界,结果应该是一个随机的数
而且lz代码没有完成题目的要求,我给一个简单粗暴的参考写法:
- #include <stdio.h>
- int main(void)
- {
- int a[3][3]={{1,2,0},{4,5,0},{0,0,0}};
- int i,j;
- printf("Before calculated, the array is :\n");
- for (i = 0; i < 3; i++)
- {
- for (j = 0; j < 3; j++)
- {
- printf("%d\t",a[i][j]);
- }
- printf("\n");
- }
-
- for (i = 0; i < 2; i++)//循环遍历前两行
- {
- for (j = 0; j < 2; j++)
- {
- a[i][2] += a[i][j];
- }
- a[2][2] += a[i][2];
- }
- for (i = 0; i < 2; i++)//循环遍历前两列
- {
- for (j = 0; j < 2; j++)
- {
- a[2][i] += a[j][i];
- }
- a[2][2] += a[2][i];
- }
- printf("After calculated, the array is :\n");
- for (i = 0; i < 3; i++)
- {
- for (j = 0; j < 3; j++)
- {
- printf("%d\t",a[i][j]);
- }
- printf("\n");
- }
- getchar();
- return 0;
- }
复制代码 |
|