| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1194 人关注过本帖
标题:C++ 中switch case选择语句的应用
只看楼主 加入收藏
zfeidy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-26
收藏
 问题点数:0 回复次数:7 
C++ 中switch case选择语句的应用
对于下面的这个程序:
意思是:一、某市不同车牌的出租车3km的起步价和计费分别为夏利7元,3km以外2.1元/km;富康8元,3km以外2.4元/km;桑塔那9元,3km以外2.7元/km。编程:从键盘输入乘车的车型及自行车公里数,输出应付车资。
我编写如此程序 且无法通过编译 谁帮我解决一下

#include<iostream.h>
void main()
{
char chexing;
float lucheng;
cout<<"请输入车型"<<endl;
cin>>chexing;
cout<<"请输入路程"<<endl;
cin>>lucheng;
switch(chexing)
{
case'夏利':
cout<<"你乘坐的是"<<chexing<<","<<"路费为:"<<7+(lucheng-3)*2.1<<endl;
break;
case'富康':
cout<<"你乘坐的是"<<chexing<<","<<"路费为:"<<8+(lucheng-3)*2.4<<endl;
break;
case'桑塔拉':
cout<<"你乘坐的是"<<chexing<<","<<"路费为:"<<9+(lucheng-3)*2.7<<endl;
break;
default:
cout<<"输入错误"<<endl;
}
}
问题补充:case语句为常量表达式 我把桑塔拉改为“桑塔”时 却能通过编译 但是运行时还是有错 这是怎么回事?
搜索更多相关主题的帖子: switch case 语句 应用 
2007-11-21 13:28
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 
字符常量太长, 字符常量的长度通常只能是一个或两个字符长,超过此长度会出现这种错误
建议参看下http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csspec/html/vclrfcsharpspec_8_7_2.asp

[此贴子已经被作者于2007-11-21 17:03:44编辑过]


Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-11-21 16:39
neverDie
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2007-5-5
收藏
得分:0 

不太明白,中文也可以?


2007-11-21 17:09
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
以下是引用neverDie在2007-11-21 17:09:45的发言:

不太明白,中文也可以?


同感

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-11-21 17:12
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
switch(条件表达式)中 条件表达式的值要为整型数 ,其他的都不行.你把case 里面的 汉字<夏利>等 该为数字 就可以了

蝴 蝶 颤 动 了 翅 膀 !!!
2007-11-21 17:23
cz522321
Rank: 1
等 级:禁止访问
威 望:2
帖 子:569
专家分:5
注 册:2006-3-13
收藏
得分:0 
呵呵,我还是第一次听说case语句下用汉字的!

2007-11-21 17:41
coding
Rank: 1
等 级:新手上路
威 望:1
帖 子:60
专家分:0
注 册:2007-9-30
收藏
得分:0 

SWITCH语句后面只能是整型,无符号,枚举,字符类型的,本质上讲,都是可列数据类型的;其它的都不行!
楼主CASE后面的看似是字符串,在C中,我们知道字符串都是一列地址的,所因CASE后面实事上是字符串的首地址
无符号型的32位整数数据类型,且是常量地址(CONST ),而你输入的传到SWITCH的括号里,是一个变量指针


2007-11-21 19:23
coding
Rank: 1
等 级:新手上路
威 望:1
帖 子:60
专家分:0
注 册:2007-9-30
收藏
得分:0 

可以这样改:

把CASE后面定义为枚举变量


2007-11-21 19:25
快速回复:C++ 中switch case选择语句的应用
数据加载中...
 
   



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

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