我爱橙 发表于 2022-6-12 23:52:52

EX3.20+4计算飞机票款

输入舱位代码和购票数量,输出总票款。
提示:国内客票的舱位等级主要分为头等舱(舱位代码为F)、公务舱(舱位代码为C)、经济舱(舱位代码为Y);经济舱里面又分不同的座位等级(舱位代码为B、H、K、L、M、N、Q、T、X等,价格也不一样)。票价规则为:F舱为头等舱公布价,C舱为公务舱公布价,Y舱为普通舱(经济舱)公布价,B舱为普通舱9折,H舱为普通舱85折,K舱为普通舱80折,L舱为普通舱75折,M舱为普通舱70折,N舱为普通舱65折,Q舱为普通舱60折,T舱为普通舱55折,X舱为普通舱50折。程序首先输入F舱、C舱和Y舱的公布价,然后输入舱位代码和购票数量,利用switch语句处理不同折扣的情况,计算出机票款并输出。输入、输出都要有文字说明。

程序运行示例:

请输入F舱、C舱和Y舱的公布价

3000 2000 1000

请输入舱位代码和购票数量

F 2

机票款总额为6000

输入格式:
输入提示:"请输入F舱、C舱和Y舱的公布价\n"
输入格式:"%f%f%f"
输入提示:"请输入舱位代码和购票数量\n"
输入格式:" %c%d"

输出格式:
"机票款总额为%.0f"

输入样例:
在这里给出一组输入。例如:

3000 2000 1000
F 2
输出样例:
在这里给出相应的输出。例如:

请输入F舱、C舱和Y舱的公布价
请输入舱位代码和购票数量
机票款总额为6000

#include <stdio.h>
int main (void)
{
    int n;
    float f,c,y,i;
    char g;
    printf ("请输入F舱、C舱和Y舱的公布价;\n");
    scanf ("%f%f%f",&f,&c,&y);
   
    printf ("请输入仓位代码和购票数量;\n");
    scanf ("%c%d",&g,&n);
    switch (g)
    {
      case 'B':i=y*0.9*n;break;
      case 'H':i=y*0.85*n;break;
      case 'K':i=y*0.8*n;break;
      case 'L':i=y*0.75*n;break;
      case 'M':i=y*0.7*n;break;
      case 'N':i=y*0.65*n;break;
      case 'Q':i=y*0.6*n;break;
      case 'T':i=y*0.55*n;break;
      case 'X':i=y*0.5*n;break;
    }
    printf ("机票款总额为%.0f",i);
    return 0;
}
为什么运行不了一直是0啊QAQ

jackz007 发表于 2022-6-13 11:31:48

      在 switch 语句之前把 g 和 n 的值打印出来看看呢。

hnchshlily 发表于 2022-6-13 18:42:17

新手学习中,暂时不懂

两手空空儿 发表于 2022-6-13 22:18:09

1,检查你的y值是不是正确,
2,检查你的g值,这个是分大小写的

两手空空儿 发表于 2022-6-13 22:20:37

case 'a':
case 'B':i=y*0.9*n;break;
页: [1]
查看完整版本: EX3.20+4计算飞机票款