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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试