0
 int main(){
    int m1[3][3],m2[3][3],m3[3][3],m4[3][3],m5[3][3];
    create(m1);
    create(m2);
    matadd(m3,m1,m2);
    matmul(m4,m1,m2);
    transpose(m5,m4);
    getch();
    return 0;
  }

  void create(int a[3][3]){
    int i,k;
    for(i=0;i<3;i++){
        for(k=0;k<3;k++)
           scanf("%d",a[i][k]);
        }
    }

コーディングの初心者で、2D行列で簡単なプログラムを作成し、正常にコンパイルしましたが、実行するたびに、1番目のcreate()を呼び出して最初の2つの整数を入力するとクラッシュします。

4

2 に答える 2

3
scanf("%d",a[i][k]);

d変換指定子はへのポインターを期待してintいますが、を渡していますint

オブジェクトへのポインタを渡すには、&演算子を使用します。

scanf("%d", &a[i][k]);
于 2013-01-01T11:47:17.280 に答える
2

このように使う

scanf("%d", &a[i][k]);

input/ を入力するたびscanf&. これはCの基本的なことですが、どうしてこれを見逃すことができますか?

于 2013-01-01T11:49:27.173 に答える