0

このプログラムで実行時エラーが発生しました。構文エラーはありませんが、実行するとクラッシュします。私は使用してdev-c++ 4.9.9.2います。エラーを見つけようとしましたが、見つかりませんでした。誰かが助けてくれる場合は、エラーを見つけて修正してください。

#include<iostream.h>


void DisplayVUID();
void DisplayReverse(char[], int);
void StoreDiagonal();

main()
{
      DisplayVUID();
      char a[20] = "mc123456789";
      DisplayReverse(a, 20 );
      StoreDiagonal();

system("pause");
}
void DisplayVUID()
{
     int i;
     char name[20] = "mc123456789";
     cout<<"My VU id is ";
     for(i=0;i<20;i++)
     {
          cout<<name[i];
     }
     cout<<endl;
}
void DisplayReverse(char a[], int arraysize)
{
     int i;
     cout<<"MY VU id in Reverse is ";
     for(i=arraysize-1;i>=0;i--)
     {
       cout<<a[i];
     }
     cout<<endl;                           
}
void StoreDiagonal()
{
     int a[9][9] ;
     int i;
     int row, col;
     for (i = 0; i<9;i++)
     {
         for(i=0;i<9;i++)
         {
         a[row][col] = 0;
         }
     }
a[1][1] = 1;
a[2][2] = 3;
a[3][3] = 0;
a[4][4] = 2;
a[5][5] = 0;
a[6][6] = 2;
a[7][7] = 3;
a[8][8] = 9;
a[9][9] = 8;
      for(i = 0 ; i < 9 ; i ++)
              {
                for( i = 0 ; i < 9 ; i ++)
                {
                cout<<a[row][col];
                }
              }
}
4

2 に答える 2

2
a[9][9]=8;

この行を削除すると、問題ありません。配列のインデックスは 1 ではなく 0 から始まります。

また、'\0' の後の値はガベージ値になるため、関数 DisplayVUID() で i<20 を a[i]!='\0' に変更することを指摘したいと思います。

于 2013-06-28T10:04:39.150 に答える