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;
答案 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