行的总和部分无法正常工作。有什么建议? 此外,如果主对角线是i == j,那么相反的对角线是什么?我该如何定义它?
int main (void) {
int A[5][5];
int B[5];
int x=0,sum=0;
int n,m,i=0,j;
printf("Enter rows and columns : \n");
scanf("%d %d",&n,&m);
printf("Enter matrix : \n");
for (i = 0 ; i < n ; i++) {
for (j = 0 ; j < m ; j++) {
scanf("%d",&A[i][j]);
}
}
/* Sum of rows Problem */
for(i = 0 ; i < n ; i++) {
B[i] = 0;
for(j = 0 ; j < m ; j++) {
B[i] = B[i] + A[i][j];
++i;
}
}
for(i = 0 ; i < n ; i++) {
for(j = 0 ; j < m ; j++) {
printf("The sum of rows %d \n", B[j]);
}
}
return 0;
}
答案 0 :(得分:2)
实际上,你只需要在内循环中删除++i
,程序运行正常。
代码:
int main (void) {
int A[5][5];
int B[5];
int x=0,sum=0;
int n,m,i=0,j;
printf("Enter rows and columns : \n");
scanf("%d %d",&n,&m);
printf("Enter matrix : \n");
for (i = 0 ; i < n ; i++) {
for (j = 0 ; j < m ; j++) {
scanf("%d",&A[i][j]);
}
}
/* Sum of rows Problem */
for(i = 0 ; i < n ; i++) {
B[i] = 0;
for(j = 0 ; j < m ; j++) {
B[i] = B[i] + A[i][j]; //Removed the stray ++i from here.
}
}
for(i = 0 ; i < n ; i++)
{
printf("The sum of row %d is %d \n",i+1,B[i]);
}
return 0;
}
如果i == size - j- 1
是数组的大小,那么在回答第二个问题时,对角线为size
。