我试图在新行上打印出每个整数,给定由用户输入的空格分隔的整数。它会在特定数字后停止打印,例如84.例如
用户输入
20 -4 84 8
我如何使用while循环将这些打印出来
20
-4
84
我知道scanf(“%d%d%d%d”,a,b,c,d),但是输入大小是未知的,因此可能只有3个数字或7个数字。到目前为止我有:
#include <stdio.h>
int main(void)
{
int i = 0;
int x = 0;
scanf("%d", &x);
while (x != 84) {
print("%d\n", x[i]);
i++;
}
}
答案 0 :(得分:4)
将scanf
推入while
条件。像
while (scanf("%d", &x) != EOF && x != 84)
print("%d\n", x);
答案 1 :(得分:2)
基本概念应分为两步:
伪代码看起来像
while ((ret =scanf(x)) && ret != EOF ){
if (x == VAL) break;
printf(x);
}
答案 2 :(得分:0)
您有一些错误:
num
不存在; scanf
。更正后的代码如下:
#include <stdio.h>
int main(void)
{
int x;
while( 1 ){
scanf( "%d", &x );
print( "%d\n", x );
if( x==84 ) break;
}
}
答案 3 :(得分:-1)
您需要将scanf()
放在while
循环中才能更新每个新输入。如果您只想打印输入的值,则无需数组,因为您可以在新输入后打印它。最好使用do-while
循环。
#include <stdio.h>
int main(void)
{
int i = 0;
int x = 0;
do {
if ( scanf("%d", &x) < 0 )
break;
printf("%d\n", x);
} while (x != 84);
}