我需要找到奇数列之和与矩阵中偶数行之和的差异。
我解决了问题,但偶数行的总和不正确。 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int main()
{
int i, j, sumR=0, sumK=0, m=0, n=0, a[MAX][MAX];
scanf("%d %d", &n, &m);
for(i=0; i <n; i++)
{
for(j=0; j <n; j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0; i < n; i++)
{
for(j=0; j <n; j++)
{
if((j+1)%2)
sumK += a[i][j];
else if ((i+1)%2 == 0)
sumR += a[i][j];
}
}
printf("Sum col: %d, Sum row: %d, Difference: %d \n", sumK, sumR, sumK-sumR);
return 0;
}
代码首先读取矩阵的尺寸,然后读取矩阵中的值,然后计算总和。 例如,这个矩阵是4x4:
2 5 7 3
3 8 2 1
6 7 9 9
1 6 9 4
列的总和为39,行为34,但行的输出为19。 为什么是19?我的错在哪里?
答案 0 :(得分:1)
您有逻辑错误,请在else
删除else if ((i+1)%2 == 0)
,因为它仅在列为奇数时才考虑行。