【发布时间】:2016-07-14 21:13:42
【问题描述】:
我正在尝试编写一个小程序,其中用户指定他们希望输入 n 多个数字,然后提示他们在后续行中输入 n 多个浮点数并带有提示。 预期的输出是
$./a.out
How many number (at least two)? > 4
Enter a number (3 more to enter) > 2
Enter a number (2 more to enter) > 3
Enter a number (1 more to enter) > 5
Enter a number (0 more to enter) > 7
但是,我的程序当前读取第一个输入(在我的示例中为 2),然后跳过其余提示的用户输入。
我当前代码的输出是
$./a.out
How many number (at least two)? > 4
Enter a number (3 more to enter) > 7
Enter a number (2 more to enter) >
Enter a number (1 more to enter) >
Enter a number (0 more to enter) >
我搜索了here、here 和here 的解决方案,但我什么也做不了。 有没有人对如何让 scanf 在这方面工作有任何建议? 我更喜欢使用 scanf,因为我们没有介绍任何 get 函数的用法。
#include <stdlib.h>
#include <stdio.h>
main(){
int i,n;
int temp_count,count,rv;
float number[10000];
printf("How many number (at least two)? > ");
rv = scanf("%d",&n);
if(n<2||rv!=1){
printf("Please enter at least two numbers");
}
count=n;
for(i=0;i<n;i++){
count--;
printf("Enter a number (%d more to enter) > ",count);
fflush(stdin);
scanf(" %.2f",number[i]);
}
return(0);
} //end main
【问题讨论】: