| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1850 人关注过本帖
标题: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
快速回复:if语句是对的 但switch语句就错了?急啊!!
数据加载中...
 
   



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

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