1

すべてが正しいようですが、それでも印刷すると、すべての要素がゼロとして印刷されます...助けてください

#include <stdio.h>
#include <stdlib.h>

#define COL 4
#define ROW 3

int y[3][4] = {{1, 2, 3},
               {4, 5, 6},
               {7, 8, 9}
                        };        


int main()
{
   int i,j;

   for(i=0;i<=ROW;i++)
   {

      for(j=0;j<=COL;j++)
      {
          printf("Value at col %d and row %d, is : %d\n",COL,ROW,y[ROW][COL]);
      }
   }

 }

私を助けてください!

4

5 に答える 5

2

コードにいくつかの問題があります。

  • ループは 1 つの要素を遠くまでカウントし、配列は 0からCOL/ROWに移動しますが、0からROW/COL まで移動します。を使用します。!の代わりに に注意してください。(COLループも同様)for(i=0; i < ROW; i++)<<=
  • printf()ステートメントで行と列を交換した場合は、最初に列を使用してから行を使用します。
  • で変数を使用しなかった場合は、代わりprintf()に使用してください。printf("Value at col %d and row %d, is : %d\n",j,i, y[i][j]);
  • あなたのアレイには4COLつではなく3つしかありません#defined
于 2013-02-26T09:59:27.827 に答える
1
printf("Value at col %d and row %d, is : %d\n",i,j,y[i][j]);

ループ変数の代わりに ROW と COL をオフセットとして使用している

于 2013-02-26T09:58:39.483 に答える
1

配列要素は、インデックスによってアクセスされます i & j を使用して配列要素にアクセスします。たとえば、 i>=0 および i< ROW です。

printf("Col:%d, Row:%d, Value:%d", i, j,y[i][j]);
于 2013-02-26T10:10:35.043 に答える
0
      printf("Value at col %d and row %d, is : %d\n",COL,ROW,y[ROW][COL]);

これで、あなたは印刷してy[ROW][COL]います:y[i][j]

また、未定義の動作を呼び出すため、範囲外にアクセスしています。

条件は次i<ROwのとおりj<COLです。 for ループ内。

于 2013-02-26T09:59:57.547 に答える
0

変化する

printf("列 %d、行 %d の値: %d\n",COL,ROW,y[ROW][COL]);

の中へ

printf("列 %d、行 %d の値: %d\n",i,j, y[i][j]);

また、配列の次元は3;4であり、 3;3として初期化されることに注意してください!

于 2013-02-26T09:58:53.340 に答える