【发布时间】:2014-09-12 20:31:35
【问题描述】:
我目前正在尝试让 while 循环正常工作,但它也没有按照我想要的方式进行。我想要做的是循环直到输入特定的输入。我的语法一定有问题,但我不知道是什么。
#include <stdio.h>
int main()
{
float input = 0;
scanf("%f", &input);
while(input!=0)
{
printf("hello\n");
scanf("%f", &input);
}
return 0;
}
由于某种原因,当它为零时,它不会跳出 while 循环。我希望 while 循环在有人输入 0 后停止工作,但是当有人输入 0 时,它将创建一个无限打印的“hello”。正如您可能已经猜到的那样,每当用户输入除浮点数之外的任何内容时,输入都会变为 0,所以如果我输入一个字母,我希望 while 循环停止,但它不会;\
编辑:
谢谢大家的帮助!我了解并弄清楚了为什么我的逻辑是错误的(由于缺乏了解如何测试 scanf 的值)!干杯。
【问题讨论】:
-
欢迎来到浮点世界及其永无止境的问题:)
-
你应该检查
scanf的结果。 -
谢谢,但我应该如何修改语法以使其脱离 while 循环?
-
你可能想阅读this
scanfreference,尤其是关于它返回什么的部分, -
@R.T.:如果浮点数为零,则准确地测试浮点数为零应该实际上可以工作。如果您进行任何计算,您可能无法保证精确为零,但如果您只是输入数字,那么您可以做出此保证。
标签: c