首页 文章

C - 将用户输入扫描到要排序的数组中

提问于
浏览
1

原谅我,我是C编程新秀 . 我需要做的是从标准输入中获取值并将它们存储在一个数组中,该数组稍后将在线上进行排序 .

用户输入的方法是一次一行一个号码(即输入号码,按回车键,输入号码,按回车键等) . 当用户输入数字时,他们按 ENTER 而不提供数字 .

我接受值并存储它们的代码如下 . 您可能会立即看到问题,但我没有看到它 .

#include <stdio.h>
#define MAX 100

int main()
{
    int n, i, array[MAX];

    printf("Enter a list of integers\n");

    for(i = 0; i <= MAX; ++i){
        printf("> ");
        if (scanf("%d", &n) == -1)
            break;
        else
            scanf("%d", &n);
            array[i] = n;
    }

    printf("The array is %d", *array);
    return 0;
}

下图是程序应该如何运行 . 我已经有了排序代码,它看起来效果很好 . 非常感谢您的帮助 .

enter image description here

2 回答

  • 1

    这是在enter上退出的更新的先前答案 .

    #include <stdio.h>
    #define MAX 100
    
    int main()
    {
        int n, i, array[MAX];
        char num[MAX];
        int res;
    
        printf("Enter a list of integers [ctrl+d] to end\n");
    
        for(i = 0; i <= MAX; ++i){
            printf("> ");
        fgets(num, sizeof(num), stdin);
        res = sscanf(num, "%d", &n);
        if(res != 1)
         break;
        n = atoi(num);
            array[i] = n;
        }
        puts ("");
    
        int z;
        for (z = 0; z < i; z++)
            printf("The array is %d\n", array[z]);
    
        return 0;
    }
    
  • 2

    你有它做你想要的,你只需要一些调整 . 首先,输入不返回-1,为了保持简单,您需要输入 ctrl+d 来停止输入 . 在最后输入之后,只需按 ctrl+d 即可 . 看一看:

    #include <stdio.h>
    #define MAX 100
    
    int main()
    {
        int n, i, array[MAX];
    
        printf("Enter a list of integers [ctrl+d] to end\n");
    
        for(i = 0; i <= MAX; ++i){
            printf("> ");
            if (scanf("%d", &n) == -1)
                break;
            array[i] = n;
        }
        puts ("");
    
        int z;
        for (z = 0; z < i; z++)
            printf("The array is %d\n", array[z]);
    
        return 0;
    }
    

    输出:

    Enter a list of integers [ctrl+d] to end
    > 1
    > 2
    > 3
    > 4
    > 5
    >
    The array is 1
    The array is 2
    The array is 3
    The array is 4
    The array is 5
    

相关问题