#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;
}
为什么在连续输入两个字符的时候程序就结束了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 墨梅无痕 2022-02-12 11:24关注
不是连续输入两个字母程序会结束,就是输入一个字母程序也会结束。
int main() { float num = 0; double sum = 0; int status; // 这个 do 循环用于读取多行数据 do { printf("Input number:"); // 这个 do 循环用于读取一行上的多个数 do { sum = sum + num; // 这句明确是读取浮点数,当读取到字母时, scanf 返回 0,则status == 0,退出循环。 status = scanf("%f", &num); }while((getchar() != '\n') && (status == 1)); }while(status == 1); printf("Result: %2lf\n", sum); // 猜测这里输出是要保留两位小数,则格式应为 %0.2lf return 0; }
用字母作为退出循环的条件,这是必要的,否则就成死循环了。
参阅:scanf()函数详解 http://c.biancheng.net/cpp/html/34.html本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写
- ¥20 Qcustomplot缩小曲线形状问题
- ¥15 企业资源规划ERP沙盘模拟