将数据输入到数组中,直到输入为char

时间:2018-05-20 15:28:12

标签: c

C新手在这里。我想问一下如何在用户输入字符之前填充数组。之后,输入部分停止并打印出来。

    int main()
{
    int a, b[100];
    int i;
    for(i = 0; i < 100; i++){
        scanf("%d", &b[i]);
    }
    for(i = 0; i < b[i]; i++){
        printf("%d\n",b[i]);
    }
    return 0;

1 个答案:

答案 0 :(得分:1)

您可以在scanf循环中使用while的返回值,因为scanf会返回扫描的元素数。在您的情况下,当用户输入数字时为1,当用户输入字符时为0。

所以代码看起来像:

#include <stdio.h>

#define MAX_ELEMENTS 100
int main()
{
    int elements = 0; 
    int b[MAX_ELEMENTS];
    int i;
    while(elements < 100 && scanf("%d", &b[elements]) == 1)
    {
        ++elements;
    }
    for(i = 0; i < elements; i++){
        printf("%d\n",b[i]);
    }
    return 0;
}

输入:

10 20 30 g

输出:

10
20
30