标题:if else语句如何改造成switch语句
取消只看楼主
不惑不获
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-3-17
 问题点数:0 回复次数:3 
if else语句如何改造成switch语句
小弟学习遇到一个题目,缠绕我几天了,心急的很,望编程高手指点一下题目:某个服装店经营套装,也单件出售。如果整套买,一次买的多于50套,每套80元,如果一次买的不足50套,每套90元,如果只买上衣,每件60元,如果只买裤子,每条45元。输入需要买的上衣和裤子的件数,计算应付金额。请问如何用switch语句实现同样的功能?
ifelse语句:
#include <stdio.h>

main()
{
int c,t; /*变量c代表买上衣的件数,t代表买裤子的件数*/
int m; /*变量m表示应付金额*/

printf("请输入你需要买的上衣和裤子的件数:\n");
scanf("%d,%d",&c,&t); /*输入你需要买的上衣和裤子的件数*/
if (c==t) /*成套买*/
{
if (c>=50)
m = c*80; /*买50套以上,每套80元*/
else
m = c*90; /*买50套以下,每套90元*/
}
else /*不成套买*/
{
if (c>t) /*买的上衣比裤子多*/
if (t>=50)
m=t*80+(c-t)*60; /*多于50套,成套部分按每套80元算,单件另算*/
else
m=t*90+(c-t)*60; /*少于50套,成套部分按每套90元算,单件另算*/
else /*买的裤子比上衣多*/
if (c>50)
m=c*80+(t-c)*45; /*多于50套,成套部分按每套80元算,单件另算*/
else
m=c*90+(t-c)*45; /*少于50套,成套部分按每套90元算,单件另算*/
}
printf("\n应付金额是: %d\n",m);

}
搜索更多相关主题的帖子: switch else 语句 改造 
2006-03-17 19:23
不惑不获
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-3-17
得分:0 

我想也是,如果只用switch绝对不行,我开始的想法是先if(c==t)判定c=t的情况后,再用switch语句选择c>t和c<t时的四种情况,却不知道该如何定义switch(),case后常量是用case80,case90,cas60,case45还是用c/50的值为0或者非0呢?还是其他?真的想了几天了,望各位指点。


2006-03-17 20:12
不惑不获
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-3-17
得分:0 

谢谢各位,我已经明白了,受他人指点,我的程序为:
#include<stdio.h>
main()
{
int c,t; /*变量c代表买上衣的件数,t代表买裤子的件数*/
int m; /*变量m表示应付金额*/
int w; /*总套数*/
printf("请输入要买的上衣和裤子数:\n");
scanf("%d,%d",&c,&t); /*输入你需要买的上衣和裤子的件数*/
w=c>t?t:c; /*判定套装数量*/
t=t>w?t-w:0; /*配套后裤子的剩余件数*/
c=c>w?c-w:0; /*配套后上衣的剩余件数*/
switch(w/10)
{
case 0:
case 1:
case 2:
case 3:
case 4: /*买50套以下,每套90元*/
m=w*90+t*45+c*60; /* 配套的衣服总价格 加上剩余裤子总价格 加上剩余上衣总价格*/
break;
default: /*买50套以上,每套80元*/
m=w*80+t*45+c*60; /* 配套的衣服总价格 加上剩余裤子总价格 加上剩余上衣总价格*/
break;
}
printf("\n应付金额是:%d\n",m);
}


2006-03-18 12:18
不惑不获
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-3-17
得分:0 
我发现自己原来没有跳出课本,程序的变化在于思维的变化,而这也正是想要突破的难度。

2006-03-18 12:22



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




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

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