0

我无法完成此代码,请帮助我!我必须矩阵,程序读取函数中的矩阵项

int main(int argc, char *argv[])
{ 
   int r1,c1;
   printf("Enter dimension of first matrix :");
   scanf("%d %d",&r1,&c1);

   int m1[r1][c1];
   GetArray(m1,r1,c1);


   system("PAUSE"); 
   return 0;
}
void GetArray(int arr[][],int _row,int _column)
{
    int i,j,num;
    printf("Enter number: ");
    for(i==0;i<_row;i++){
        for(j==0;j< _column;j++){
           scanf("%d",&num);
           arr[i][j]=num;}} //give error in this line
}
4

2 回答 2

1

在 C 编程中,==用于比较和=赋值操作。您肯定希望在循环j中分配值。在您的情况下,您没有初始化循环变量(当您在函数开头声明它们时),并且由于它们在未初始化时会得到垃圾值,因此您尝试超出您在循环,从而得到分段错误。iforfor

于 2013-03-20T20:03:36.757 回答
0
int main(int argc, char *argv[])
{ 
    int r1,c1;
    printf("Enter dimension of first matrix :");
    scanf("%d %d",&r1,&c1);
    int **m1;
    for(int i = 0; i<r1 ;++i) // use c99 !
        m1[i] = malloc(c1* sizeof(int));
    GetArray(m1,r1,c1);
    system("PAUSE");
    for(int i = 0; i<r1 ;++i)
        free(m1[i]);
    return 0;
}
void GetArray(int ** m1,int _row,int _column)
{
    int i,j,num;
    printf("Enter number: ");
    for(i=0;i<_row;i++){
        for(j=0;j< _column;j++){
           scanf("%d",&num);
           m1[i][j]=num;}} //give error in this line
}

未经测试

于 2014-03-02T16:33:21.127 回答