csd1825192977 2016-11-18 06:30 采纳率: 0%
浏览 3366

求助:C语言while后面内容输入一个字母循环会重复两次

#include
#define wage1 8.75
#define wage2 9.33
#define wage3 10.00
#define wage4 11.20
#define rate1 0.15
#define rate2 0.20
#define rate3 0.25
int main(void)
{
char i;
double wage,time,amount;
printf("1) $8.75/hr\n");
printf("2) $9.33/hr\n");
printf("3) $10.00/hr\n");
printf("4) $11.20/hr\n");
printf("5) quit\n");
printf("Enter the number corresponding to desired pay rate or action:");
while(i!='q')
{
i=getchar();
switch(i)
{
case 'a':printf("工资为$%lf,工作时间为:",wage1),wage=wage1;scanf("%lf",&time);break;
case 'b':printf("工资为$%lf,工作时间为:",wage2),wage=wage2;scanf("%lf",&time);break;
case 'c':printf("工资为$%lf,工作时间为:",wage3),wage=wage3;scanf("%lf",&time);break;
case 'd':printf("工资为$%lf,工作时间为:",wage4),wage=wage4;scanf("%lf",&time);break;
case 'q':printf("您选择了退出。\n");break;
}
if(i=='a'||i=='b'||i=='c'||i=='d')
{
amount=time*wage;
printf("税前工资:%.1lf",amount);
}
if(amount<=300)
amount=amount*(1-rate1);
if(amount<=450&&amount>300)
amount=255+(amount-255)*(1-rate2);
if(amount>450)
amount=375+(amount-375)*(1-rate3);
if(i=='a'||i=='b'||i=='c'||i=='d')
printf("税后工资:%.1lf\n",amount);

printf("Enter again:"); 
}

}

  • 写回答

3条回答 默认 最新

  • z310692516 2016-11-18 06:31
    关注

    用了break,就直接while(1)死循环就行了

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器