Trouver la différence entre la somme des colonnes impaires et la somme des lignes paires dans la matrice en C

StackOverflow https://stackoverflow.com//questions/21019718

  •  21-12-2019
  •  | 
  •  

Question

Je dois trouver la différence entre la somme des colonnes impaires et la somme des lignes paires de la matrice.

J'ai résolu le problème, mais la somme des lignes paires est incorrecte.Voici mon code :

#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;
}

Le code lit d'abord les dimensions de la matrice, puis lit les valeurs de la matrice et calcule ensuite la somme.Par exemple cette matrice est 4x4 :

2 5 7 3
3 8 2 1
6 7 9 9
1 6 9 4

La somme des colonnes est de 39 et les lignes sont de 34, mais ma sortie pour les lignes est de 19.Pourquoi est-ce 19 ?où est mon erreur ?

Était-ce utile?

La solution

Vous avez un bug logique, supprimez-le else à else if ((i+1)%2 == 0) car il ne considère la ligne que lorsque la colonne est impaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top