2016-04-26 14 views
-2

2次元配列の各列の平均値を出力したいとします。私はすでに平均を一列に見つける方法を考え出していましたが、私はまだそれを列の下で行うことで苦労しています。2D配列の列値の平均を見つけるにはどうすればよいですか?

は、ここで私がこれまで持っているものです。

for (i=0; i<nRow; ++i) 
    { 
     for(j=0; j<nCol+1; ++j) 
     { 
      if (j == nCol) 
      { 
       nAve = (float)nSum/nCol; 
       printf("=%.1f", nAve); 
      } 
      else 
      { 
       printf("%d\t", aArray[i][j]); 
       nSum += aArray[i][j]; 
      } 
     } 

     nSum = 0; 
     printf("\n"); 
    } 
+1

内側のコードを変更せずにforループを交換してください – Nadir

+1

あなたは何を期待していますか?私はあなたのコードが正しいと思います。 –

+1

おそらく最初のnSum初期化?それにもかかわらず、私は2回目のforループの中で+1をすることを避けるでしょう。それは悪い習慣です。 – baptiste

答えて

0

私は簡単には、列の平均をカウントするために別のものを行うことだと思います。同様 :

for (j=0; j<nCol+1; ++j) 
    { 
     for(i=0; i<nRow+1; ++i) 
     { 
     } 
    } 

あなたはすべての列の合計を維持し、高めるために、配列を作成する必要がありますための1でそれをしたい場合。

float sumColumn[nCol]; 

for (i=0; i<nRow; ++i) 
    { 
     for(j=0; j<nCol+1; ++j) 
     { 
      if (j == nCol) 
      { 
       nAve = (float)nSum/nCol; 
       printf("=%.1f", nAve); 
      } 
      else 
      { 
       printf("%d\t", aArray[i][j]); 
       nSum += aArray[i][j]; 
       sumColumn[j] += aArray[i][j]; 
      } 
     } 

     nSum = 0; 
     printf("\n"); 
    } 

sumColumn配列には、最後にすべての列の合計があります。