2016-11-12 7 views
-3

行列を作るために数値を入力するプログラムがあります。次に、各行の数値を合計し、合計を出力します。しかし、私は最大の合計で行を印刷する必要があります。誰か助けてくれますか?ありがとう。ここでhttp://onlinemovies.pw行列内で最大の合計を持つ行

は、コードは次のとおりです。

#include <stdio.h> 

int main (void) 
{ 
    static int array [10][10]; 
    int i, j, m, n, sum = 0; 

    printf ("Enter the order of the matrix\n"); 
    scanf ("%d %d", &m, &n); 
    printf ("Enter the co-efficients of the matrix \n"); 
    for (i = 0; i < m; ++i) 
    { 
     for (j = 0; j < n; ++j) 
     { 
      scanf ("%d", &array [i][j]); 
     } 
    } 
    for (i = 0; i < m; ++i) 
    { 
     for (j = 0; j < n; ++j) 
     { 
      sum = sum + array[i][j] ; 
     } 
     printf ("Sum of the %d row is = %d\n", i, sum); 
     sum = 0; 
    } 

} 

答えて

1

あなたは変数を宣言し、最小値とそれをintialize、これらの値は常に正である場合は、0に初期化することができますする必要があります。

int max = 0; 

ない場合、あなたは<limits.h>

#include <limits.h> 
... 
int max = INT_MIN; 
で定義された INT_MINを使用することができます

あなたのループでそれを使用してください:

int max = INT_MIN, imax = 0; 

for (i = 0; i < m; ++i) 
{ 
    for (j = 0; j < n; ++j) 
    { 
     sum = sum + array[i][j] ; 
    } 
    printf ("Sum of the %d row is = %d\n", i, sum); 
    if (sum > max) { 
     max = sum; 
     imax = i; 
    } 
    sum = 0; 
} 
printf ("Max row (%d) is = %d\n", imax, max); 
関連する問題