2016-11-03 2 views
-1

次のループで配列のi値を使用したので、何が間違っていますか?別のエラーが表示されます TicTac.c:27:15:エラー:配列型 'int [3]'を代入できません 行列[i、z] = h、v; どうもありがとうございました。私の質問を間違って尋ねると、すみませます。私の最初の質問です。どうもありがとうございます !用エラー:未使用の式結果[-Werror、-Wunused-value]行列[i、z] = h、v;わかりません?

{  /*The tic tac board*/ 
int Matrix[3][3] = { {6,6,6}, 
        {6,6,6}, 
        {6,6,6} }; 

/*asks user for input and gives value into the array*/ 

(int型のz = 0; Z < = 2; ++ z)は {

for (int i = 0; i <= 2; ++i) 
{ 
    printf("Give me your choice in the horizontal layer"); 
    int h = GetInt(); 
    printf("Give me your choice in the verticle layer"); 
    int v = GetInt(); 


    Matrix[i,z] = h,v; 
    /*demonstrates the board*/ 
    for(int o = 0; o <= 2; o++) 
      { 

       for(int j = 0; j <= 2; j++) 
        { 
        printf("%d ", Matrix[o][j]); 
        printf("\n"); 
        } 
      } 
} 



} 
+4

「h、v」は、あなたが思っていることをしません。それがあなたの唯一の問題であるかどうかは分かりません。 http://stackoverflow.com/questions/54142/how-does-the-comma-operator-work –

+0

'Matrix [i、z]'と 'Matrix [o] [j]'とは何が違うのですか? 。あなたはいくつかの括弧が欠けている。 –

+0

ありがとうございました!今それは動作します! – shesdima

答えて

1

私はあなたが

Matrix[i,z] = h,v; 

を使用することができます場合は、お勧めしますかわかりません

Matrix[i][z]=h; 

これはあなたの問題かもしれません。

さらに、CまたはC++で多次元配列を使用する方法を理解してください。

+0

ありがとう!私は自分の配列で作業しますが、作業配列をコピーする私の以前の戦略は非常に悪い動きだったようです。 – shesdima

+0

これはあなたの問題を解決するだろうと思いますか? –

0

Matrix[i,z] = h,vが問題です。コンパイラはまずMatrix[z] = hを実行しますが、ダグリングivがあります。コンマは、「シーケンスポイント」...関数引数の区切り文字か、同じステートメント上の弱いセミコロンの一種です。法的だが、無意味なことにコンパイラの警告が出る。

+0

私は、私の配列の構文を修正したと思うが、コンパイラはまだ私に叫ぶ: \t Matrix [i] [z] = {h、v}; エラー:期待される表現 行列[i] [z] = {h、v}; コンパイラは最初のブラケットを特定しますが、それはどういう意味ですか?私の構文は間違っていますか? – shesdima

+0

Matrix [i] [z] = xは、xの単一の値をMatrixの単一の値に割り当てます。 Matrix [i、z]は誤った構文です。 Cは(a、b)=(1,2)がaに1を、bに2を代入できる言語ではありません。 {中括弧}で複数の値を折り返すことは、コンパイル時の初期化にのみ有効です。 – Gilbert

+0

@shesdima: 'Matrix [i] [z] = {h、v}' - それはどういう意味ですか?右側の '{h、v} 'で何を言おうとしていますか? – AnT

関連する問題