【发布时间】:2020-02-13 04:31:12
【问题描述】:
所以我刚开始学习编程,并且正在开发一个简单的程序,只要它是一个有效的浮点数,它就会扫描和存储用户输入值。如果输入无效,则程序立即退出并返回 1。最后,如果所有输入都有效,程序将输出存储的值。我在想一个像
这样的结构while (scanf("%f",input)==1){
//code that store the value of input;
value=input
}
else{
printf("invalid");
return 1
}
printf("%f",value);
但问题是不存在 While-else 结构,我真的很难解决这个问题。我可以对输入进行任何其他调节以生成所需的结果吗?
顺便说一句,我认为简单地删除 else 并不能真正起作用——因为要输出值,我必须使用 Ctrl d 手动退出 while 循环。然后因为我退出了while循环,无论如何我都会打印无效。是否存在只打印值的结构?谢谢。
【问题讨论】:
-
去掉'else'就行了。
-
嗯,但问题是如果我删除 else,“无效”将被打印出来,我不希望这种情况发生。如果每个输入都是浮点数,有没有办法避免打印“无效”?
-
干得好检查输入函数的返回。如果您只想在所有值都有效的情况下输出所有值,那么您需要将循环结构更改为连续循环,并在循环内保存来自
scanf的返回并检查1(良好的输入,存储值在数组中),0(错误输入,退出)或EOF(所有输入都很好,break连续循环),然后遍历数组输出所有值。
标签: c loops while-loop