| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6155 人关注过本帖
标题:switch case的用法总是不懂,可以帮我看看case部分有哪里错了吗?
只看楼主 加入收藏
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
结帖率:70%
收藏
已结贴  问题点数:11 回复次数:8 
switch case的用法总是不懂,可以帮我看看case部分有哪里错了吗?
#include<stdio.h>
int main()
{
    float x,y;
    scanf("%f",&x);
    switch(x)
{
    case x<=1000:y=0;break;
    case x<=2000:y=x*0.05;break;
    case x<=3000:y=x*0.1;break;
    case x<=6000:y=x*0.15;break;
    case x>6000:y=x*0.2;break;
}
printf("tax=%.2f,money=%.2f",x,y);
return 0;
}

以下是错误提示
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c||In function 'main':|
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c|6|error: switch quantity not an integer|
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c|8|error: case label does not reduce to an integer constant|
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c|9|error: case label does not reduce to an integer constant|
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c|10|error: case label does not reduce to an integer constant|
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c|11|error: case label does not reduce to an integer constant|
C:\Users\dell\Desktop\c语言\绝对值\switch case1.c|12|error: case label does not reduce to an integer constant|
||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


搜索更多相关主题的帖子: function quantity Desktop include return 
2016-10-24 18:15
feitianshu
Rank: 2
等 级:论坛游民
帖 子:14
专家分:31
注 册:2016-10-18
收藏
得分:3 
回复 楼主 北国123456
//case后面只能跟整型数据
#include<stdio.h>
int main()
{
    double x,y;
    int m;
    scanf("%lf",&x);
    m=(int)(x/1001);
    switch(m)
{
    case 0:y=0;break;
    case 1:y=x*0.05;break;
    case 2:y=x*0.1;break;
    case 6:y=x*0.15;break;
    default:y=x*0.2;break;
}
printf("tax=%1.2f,money=%1.2f",x,y);
return 0;
}
2016-10-24 18:35
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:3 
回复 2楼 feitianshu
不单单只有整型。你试试字符
2016-10-24 18:41
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:2 
以下是引用feitianshu在2016-10-24 18:35:32的发言:

//case后面只能跟整型数据


}



case后面的常量标号,其类型应与表达式的数据类型相同。

早知做人那么辛苦!  当初不应该下凡
2016-10-24 18:42
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
收藏
得分:0 
回复 2楼 feitianshu
谢谢

[此贴子已经被作者于2016-10-24 21:28编辑过]

2016-10-24 21:27
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
收藏
得分:0 
回复 3楼 linlulu001
嗯,是可以的
2016-10-24 21:40
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
收藏
得分:0 
回复 2楼 feitianshu
这样子的话是漏了情况的
2016-10-24 22:02
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:3 
回复 7楼 北国123456
针对你这道题 ,就用整形啊,你输入的本来就是一个数,用不到字符,需要看情况使用
2016-10-25 00:25
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:0 
case后面不能跟判断式啊。。。
switch(a)
{
    case 1:
        ...;
        break;
    case 2:
        ...;
        break;
    ...
   
    default:
        break;
}
2016-11-01 17:31
快速回复:switch case的用法总是不懂,可以帮我看看case部分有哪里错了吗?
数据加载中...
 
   



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

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