Найдите разницу между суммой нечетных столбцов и суммой четных строк в матрице в C

Мне нужно найти разницу между суммой нечетных столбцов и суммой четных строк в матрице.

Я решил проблему, но сумма четных строк неверна. Вот мой код:

#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? где моя ошибка?


person pall    schedule 09.01.2014    source источник


Ответы (1)


У вас есть логическая ошибка, удалите else в else if ((i+1)%2 == 0), потому что он учитывает строку только тогда, когда столбец нечетный.

person Grijesh Chauhan    schedule 09.01.2014
comment
@mpaloski Добро пожаловать, я случайно обнаружил ошибку. ;) - person Grijesh Chauhan; 09.01.2014