小猿搜题英语随身听:C语言switch语句问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/07 14:36:56
题目:某个服装店经营套装,也单件出售。如果整套买,一次买的多于50套,每套80元,如果一次买的不足50套,每套90元,如果只买上衣,每件60元,如果只买裤子,每条45元。输入需要买的上衣和裤子的件数,计算应付金额。请问如何用switch语句实现同样的功能?
if else语句程序:
#include <stdio.h>

int 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);

}

int tao(int x) //根据成套服装的数量返回金额
{
int m;
switch (x)
{
case 0:
case 1:
case 2:
...
case 49: //对于0到49套,都是90一套
m = 90 * x;
break;
default:
m = 80 * x;
}
return m;
}

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

printf("请输入你需要买的上衣和裤子的件数:\n");
scanf("%d,%d",&c,&t); /*输入你需要买的上衣和裤子的件数*/
switch(c>=t)
{
case 0: //裤子多
m = (t-c)*45 + tao(c);
break;
default: //上衣多或相等
m = (c-t)*60 + tao(t);
}
return m;
}