sinat_35805652 2016-08-06 02:55 采纳率: 0%
浏览 1197

【求助】用C-FREE编的C语言程序,getchar()哪里用错了,键盘输入没有反应?

计算所得税tax.
#include
#define SINGLE 17850
#define HOST 23900
#define MARRIED_SHARE 29750
#define MARRIED_DIVORCE 14875
#define RATE1 0.15
#define RATE2 0.28

int main()
{
float type,pay,tax;
char ch;
while(1)
{
printf("Select the type of marriage:\n");
printf("1)SINGLE\t2)HOST\n3)MARRIED_SHARE\t4)MARRIED_DIVORCE\n");
while((ch=getchar())=='\n');continue;//滤掉回车
switch(ch)
{
case '1':type=SINGLE;break;
case '2':type=HOST;break;
case '3':type=MARRIED_SHARE;break;
case '4':type=MARRIED_DIVORCE;break;
case '5':printf("quit!\n");return 0;
default:printf("Input error.\n");continue;

}
printf("you have select %c\n",ch);
printf("input the pay:");
scanf("%f",&pay);
if(pay<=type)tax=pay*RATE1;
else tax=type*RATE1+(pay-type)*RATE2;
printf("tax is %.2f\n");
}

}
生成程序后输入1或者2其他数字,都一直在循环
printf("Select the type of marriage:\n");
printf("1)SINGLE\t2)HOST\n3)MARRIED_SHARE\t4)MARRIED_DIVORCE\n");
这两个语句?感觉getchar()有点问题,以前也有碰到这样的情况,输入完全没反应。

  • 编程小白求助
  • 写回答

1条回答

  • T_world 2016-08-06 03:04
    关注

    将while((ch=getchar())=='\n');continue;//滤掉回车
    这句代码中的continue去掉即可
    另外,楼主最后的输出语句有误:
    printf("tax is %.2f\n");
    应该是:printf("tax is %.2f\n",tax);

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮