bhj 发表于 2017-9-27 19:08:58

请问哪里出错了?switch语句应用有什么要求?

#include<stdio.h>
void main()
{
        float i,d,s;
        printf("请输入当月利润:");
        scanf("%f",&i);
        for(;i<0;)
        {
                printf("输入错误请重新输入\n");
          printf("请输入当月利润:");
          scanf("%f",&i);
        }
        switch(i)
        {
        case i<=10:s=i*0.1;break;
        case i>10&&i<=20:s=1+(i-10)*0.75;break;
        case i>20&&i<=40:s=1.75+(i-20)*0.05;break;
        case i>40&&i<=60:s=2.75+(i-40)*0.03;break;
        case i>60&&i<=100:s=3.35+(i-60)*0.015;break;
        case i>100:s=3.95+(i-100)*0.01;break;
    default:printf("error\n");
        }
        printf("应发放奖金总数为:%f\n",s);
}



switch语句应用有什么要求?

丶忘却的年少o 发表于 2017-9-27 19:10:50

case 后边必须跟一个常量值,而不能是一个范围,也就是说你的i要是个整形或者字符型会好确定

丶忘却的年少o 发表于 2017-9-27 19:12:26

还有,你怎么用for循环来做输入错误重新输入,未免有点大材小用,你就用了一个表达式,剩下两个都空着,直接while(i < 0)循环就可以了
页: [1]
查看完整版本: 请问哪里出错了?switch语句应用有什么要求?