标题:if语句是对的 但switch语句就错了?急啊!!
只看楼主
zj26074
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-11
得分:0 
是不是t接收的值有问题哟。。。加个取整的函数再试试耶。。。
还有几个符号是全角的。。。

[ 本帖最后由 zj26074 于 2009-11-15 12:24 编辑 ]
2009-11-15 12:23
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
得分:5 
#include<stdio.h>
main()
{
  float I,Q;int t;/*double I,Q,t;*/
  scanf("%f",&I);
  if(I<0)printf("it is not right\n");
  else{
       if(I>=1000000)Q=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*400000+0.01*(I-1000000);   
       else t=I/100000;
       switch(t)
         {  
           case 0:Q=0.1*I;break;
           case 1:Q=0.1*100000+0.075*(I-100000);break;
           case 2:
           case 3:Q=0.1*100000+0.075*100000+0.05*(I-200000);break;
           case 4:
           case 5:Q=0.1*100000+0.075*100000+0.05*200000+0.03*(I-400000);break;
           case 6:
           case 7:
           case 8:
           case 9:Q=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*(I-1000000);break;
         }
    printf("Q=%f\n",Q);

       }



}


这个switch语句怎么就不完整了呢 编译器报错gongziwenti.c(11) : error C2050: switch expression not integral
执行 cl.exe 时出错.

gongziwenti.obj - 1 error(s), 0 warning(s)

2009-11-15 12:25
TERMINATORXQ
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2009-11-10
得分:0 
回复 12楼 dong152liang
我马上运行下     谢谢
2009-11-15 12:39
TERMINATORXQ
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2009-11-10
得分:0 
不对啊
2009-11-15 12:47
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
得分:0 
```郁闷什么错误啊一堆啊·
2009-11-15 13:07
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
得分:0 
貌似if也是错的·
程序代码:
#include<stdio.h>
main()
{
  double i,q;
  scanf("%lf",&i);
  if(i<0)
  {
      printf("it is not riight\n");
  }
  else{ 
       if(i<=100000)q=0.1*i;
       else if(i<=200000)q=0.1*100000+0.075*(i-100000);
            else if(i<=400000)q=0.1*100000+0.075*100000+0.05*(i-200000);
                  else if(i<=600000)q=0.1*100000+0.075*100000+0.05*200000+0.03*(i-400000);
                       else if(i<=1000000)q=0.1*100000+0.075*100000+0.05*200000*0.03*200000+0.015*(i-600000);
                             else  q=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*400000+0.01*(i-1000000);     
                                     
        printf("q=%lf\n",q);                
        }
}
这个是照你的要求改下······
2009-11-15 13:13
TERMINATORXQ
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2009-11-10
得分:0 
回复 15楼 jiangwu10057
     if没问题   我运行过了的     就是switch 出问题了      今晚既要交实验报告了  帮我看下嘛
   谢谢了

[ 本帖最后由 TERMINATORXQ 于 2009-11-15 13:21 编辑 ]
2009-11-15 13:15
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
得分:0 
程序代码:
#include<stdio.h>
main()
{
  double I,Q;
  int t;

  scanf("%lf",&I);
  if(I<0)printf("it is not right\n");
  else{
       if(I>=1000000)Q=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*400000+0.01*(I-1000000);    
       else t=(int)I/100000;
       switch(t)
         {  
           case 0:Q=0.1*I;break;
           case 1:Q=0.1*100000+0.075*(I-100000);break;
           case 2:
           case 3:Q=0.1*100000+0.075*100000+0.05*(I-200000);break;
           case 4:
           case 5:Q=0.1*100000+0.075*100000+0.05*200000+0.03*(I-400000);break;
           case 6:
           case 7:
           case 8: 
           case 9:Q=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*(I-1000000);break;
         }
    printf("Q=%lf\n",Q);

       } 
}
大写看的不顺溜·····
2009-11-15 13:16
TERMINATORXQ
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2009-11-10
得分:0 
回复 18楼 jiangwu10057
你好像没运行哦     不对哦
2009-11-15 13:30
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
得分:0 
回复 19楼 TERMINATORXQ
我刚运行了呀  没错 你管了工作空间试试   可能是编译器出问题了
2009-11-15 13:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-292315-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.232767 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved