我已经编写了一个程序来显示一个二维数组并计算列和行的总数。最初在编译时,我得到了total1
和total2
的错误“未初始化本地错误”。然后我将这两个值设置为0,然后总数也变为零。我附上了下面的代码。任何帮助,将不胜感激。先谢谢你。列和行不计算
int main()
{
#define NUMROWS 5
#define NUMCOLS 5
int val[NUMROWS][NUMCOLS] = { 8,3,9,0,10,
3,5,17,1,1,
2,8,6,23,1,
15,7,3,2,9,
6,14,2,6,0 };
int total1, total2, sumrow1, sumrow2, sumrow3, sumrow4, sumrow5, sumcol1, sumcol2, sumcol3, sumcol4, sumcol5;
total1 = 0;
total2 = 0;
printf("\n Enter row 1: %2d %2d %2d %2d %2d", val[0][0], val[0][1], val[0][2], val[0][3], val[0][4]);
printf("\n Enter row 2: %2d %2d %2d %2d %2d", val[1][0], val[1][1], val[1][2], val[1][3], val[1][4]);
printf("\n Enter row 3: %2d %2d %2d %2d %2d", val[2][0], val[2][1], val[2][2], val[2][3], val[2][4]);
printf("\n Enter row 4: %2d %2d %2d %2d %2d", val[3][0], val[3][1], val[3][2], val[3][3], val[3][4]);
printf("\n Enter row 5: %2d %2d %2d %2d %2d", val[4][0], val[4][1], val[4][2], val[4][3], val[4][4]);
printf("\n Row totals: %2d", total1);
sumrow1 = val[0][0] + val[0][1] + val[0][2] + val[0][3] + val[0][4];
sumrow2 = val[1][0] + val[1][1] + val[1][2] + val[1][3] + val[1][4];
sumrow3 = val[2][0] + val[2][1] + val[2][2] + val[2][3] + val[2][4];
sumrow4 = val[3][0] + val[3][1] + val[3][2] + val[3][3] + val[3][4];
sumrow5 = val[4][0] + val[4][1] + val[4][2] + val[4][3] + val[4][4];
total1 = total1 + sumrow1 + sumrow2 + sumrow3 +sumrow4 + sumrow5;
printf("\n Colum totals: %2d", total2);
sumcol1 = val[0][0] + val[0][1] + val[0][2] + val[0][3] + val[0][4];
sumcol2 = val[1][0] + val[1][1] + val[1][2] + val[1][3] + val[1][4];
sumcol3 = val[2][0] + val[2][1] + val[2][2] + val[2][3] + val[2][4];
sumcol4 = val[3][0] + val[3][1] + val[3][2] + val[3][3] + val[3][4];
sumcol5 = val[4][0] + val[4][1] + val[4][2] + val[4][3] + val[4][4];
total2 = total2 + sumcol1 + sumcol2 + sumcol3 + sumcol4 + sumcol5;
return 0;
}
看看那里您的printf电话是相对于你正在做数学题。首先添加,然后打印。 –
首先您需要添加,然后您可以打印其当前值。执行添加后保留你的'printf'行。 – Himanshu
现在我感觉有点傻了。谢谢您的帮助。 –