二维阵列扫描崩溃

时间:2013-05-07 15:38:55

标签: c arrays scanf

扫描arr功能问题。

void scan_arr(double ar[3][5]) // Declares that it is a 3 x 5
{

    int x;
    int y;
    printf("Enter arrays of 3x5\n");

    for( x = 0; x < 3; x++ ) // Shows that this loop shall be done 3 times 
    {
        for( y = 0; y < 5; y++ ) // Shows that 5 times * the number of the first loop
        {
            scanf("%lf",ar[x][y]); // Scans @ x * y and terminates after first input
        }
    }
}

2 个答案:

答案 0 :(得分:4)

这是因为您在ar[x][y]前面错过了&符号:

scanf("%lf", &ar[x][y]);
//           ^
//           |
//          Here

scanf需要存储值的项目地址,因此您需要使用“接收地址”操作符&

答案 1 :(得分:1)

你需要传递scanf函数的数组元素的地址,所以替换它:

scanf("%lf",ar[x][y]);

scanf("%lf", &ar[x][y]);