2014-01-09 91 views
2

我需要從矩陣的奇數列總和和偶數行總和中找出差異。從矩陣的奇數列和偶數行的總和中找出差異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; 
} 

代碼首先讀取矩陣的維數,則在矩陣讀取值,然後計算總和。 例如此矩陣爲4×4:

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

列的總和是39,並且行是34,但我的行輸出爲19 爲什麼是19?我的錯誤在哪裏?

回答

1

您有邏輯錯誤,請在else if ((i+1)%2 == 0)處刪除else,因爲它僅在列爲奇數時考慮行。

+0

非常感謝:D – mpaloski

+0

@mpaloski歡迎您,偶然發現錯誤。 ;) –