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 矩阵上做了一个简单的程序,编译成功,但每次运行它都会在我输入第一个 2 个整数调用第一个 create() 后崩溃。

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]);

每次你输入/scanf你需要把&. 这是C语言的基本内容,你怎么能错过呢?

于 2013-01-01T11:49:27.173 回答