初阶码 2022-02-11 12:49 采纳率: 100%
浏览 43
已结题

为什么在连续输入两个字符的时候程序就结束了

#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;
}

  • 写回答

3条回答 默认 最新

  • 墨梅无痕 2022-02-12 03: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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    初阶码 2022-02-18 12:50

    这个程序是用户同一行输入多个数字,数字之间可以是任意一个分隔符

    回复
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月18日
  • 创建了问题 2月11日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部