首页 > 解决方案 > C:scanf n 行整数,for 循环在 1 次扫描后终止

问题描述

功能:

int scanEx(){
    int n=0; 
    n=scanf("%d");
    int arr[n];
    for (int i = 0; i < n; i++){
        printf("Enter a Number \n");
        scanf(" %d", &arr[i]);

    }
    for (int i = 0; i < n; i++){
        printf("%d", arr[i]);
    }
    
}

我正在尝试读取整数的数量。然后扫描,直到扫描完金额。

但扫描在一次输入后结束。

我已阅读有关在扫描值之前添加空格的信息。做到了。但它仍然失败。

可能是由于 '\n' ?

有人可以解释我如何解决这个问题吗?提前致谢。

用 kaylum 的提示进行编辑:

功能:

int scanEx(){
    int n=0; 
    scanf("%d, &n");
    int arr[n];
    for (int i = 0; i < n; i++){
        printf("Enter a Number \n");
        scanf(" %d", &arr[i]);

    }
    for (int i = 0; i < n; i++){
        printf("%d", arr[i]);
    }
    
}

标签: cscanf

解决方案


kaylum提示后的工作功能:

int scanEx(){
    int n=0; 
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++){
        printf("Enter a Number \n");
        scanf(" %d", &arr[i]);

    }
    for (int i = 0; i < n; i++){
        printf("%d", arr[i]);
    }
    
}

推荐阅读