|
1鱼币
- #include <stdio.h>
- int main()
- {
- float num = 0;
- double sum = 0;
- int status;
- do
- {
- printf("请输入合法的数字:");
- do
- {
- sum = sum + num;
- status = scanf("%f", &num);
- } while (getchar() != '\n' && status == 1);
- } while(status == 1);
- printf("结果是:%.2lf\n", sum);
- return 0;
- }
复制代码
代码中的status == 1,若scanf函数没有调用成功则为0,而运行结果输入字母却没有跳出循环,求解!!!
运行时在一行敲出 7a8.8b9.9 却能将8.8和9.9一同加上去?
7a8.8b9.9
scanf先读取7 然后getchar读取a scanf又读取8.8 getchar又读取b scanf又读取9.9
这就是为什么8.8 和 9.9 会被 加上去的原因
|
最佳答案
查看完整内容
7a8.8b9.9
scanf先读取7 然后getchar读取a scanf又读取8.8 getchar又读取b scanf又读取9.9
这就是为什么8.8 和 9.9 会被 加上去的原因
|