张阿姨的烦恼

1.问题描述:张阿姨开了一个炸鸡店,想写个程序来计算客人应付的金额,偶然发现输入“ · ” 时,会停不下来。背后到底发生了什么呢?又怎样解决呢?

请你给出对应的问题分析报告,并给出你的解决方案。

鸡腿应用的源码如下:

#include <stdio.h>

int main()
{
    int JITUI_num = 0;
    int price_of_JITUI = 998;
    double discount = 0.6;
    double total = 0;
    for(;;)
    {
        /* input */
        printf("鸡腿数量:");
        scanf_s("%d", &JITUI_num);
        /* processing */
        total = price_of_JITUI * JITUI_num * discount;
        /* output */
        printf("Total: %lf\n", total);
    }

    return 0;
}

2.原因分析: 

该程序中scanf要求读取到十进制整形,而字符类型的  ` 并不匹配,因此scanf在缓冲区中读取为0,也导致  `  在缓冲区中一直存在,因而不会发生阻塞.

解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值