2016-12-03 13 views
1

5X4の次元を持つAという配列を定義するように求められます。私は残念ながら12次元配列の各要素を2だけインクリメントする方法

#include <stdio.h> 
    #include <stdlib.h> 
    #define SIZE 5 
    #define size 4 

    int main(){ 
     int A[SIZE][size]={0}; 
     int B[SIZE][size]; 
     int x; 
     int i; 
     int j; 

     for(i = 0; i < SIZE; i++){ 
      for(j = 0; j < size; j++){ 
       for(x = 1; x < 40; x = x + 2){ 
        A[i][j] = x; 
        printf("%d\n", A[i][j]); 
       }                
      } 
     } 

     return 0; 
    } 

から2(X + 3)において、Xが起動してそれらの一つ一つを増やし、その要素を初期化する必要があり、出力は[i]のために間違ったと繰り返される値を与えているように見えます[j]は

答えて

1

あなたはここに2次元配列を反復されています

for(i=0;i<SIZE;i++){ 
    for(j=0;j<size;j++){ 

    } 
} 

その後、あなたはここでのその値と印刷値を変更し、20倍程度の2次元配列の各要素を反復:

for(x=1;x<40;x=x+2){ 
    A[i][j]=x; 
    printf("%d\n",A[i][j]); 
} 

上記のコードA [i] [j]は変更されません。 xは1,3,5,7、...、39の値を持ちます。 ここではA [i] [j] = 1を割り当てて印刷します。次に、A [i] [j]に3を代入します(注記iとjは変更されていないので、値1を3に変更しました)。もう1つの反復で5などに割り当てられます。これは行列の各要素に発生します。最終的にはすべての要素があります値39

あなたがして、ループの最も内側の交換する必要があり

:最後になります

A[i][j] = value; 
value += 2; 

int value = 1; 
for(i=0;i<SIZE;i++){ 
    for(j=0;j<size;j++){ 
     A[i][j] = value; 
     value += 2; 
     printf("%d\n",A[i][j]); 
    } 
} 

あなたは明確に説明していないものを最初の値は

+0

です。各要素の初期値は0でなければなりません。[0] [1] ...のようになると、[0] [0] 0] [2] ....など – utdlegend

+0

@ut dlegend私はあなたの要件に合わせていくつかの編集を行った – pato

+0

これは今すぐに動作しますありがとう!なぜxループがうまくいかなかったのか分かりませんか? – utdlegend

関連する問題