鱼C论坛

 找回密码
 立即注册
查看: 136|回复: 5

可以帮我打出这个编程吗?

[复制链接]
发表于 2024-3-28 19:40:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
某航空公司规定:在旅游旺季(4、5、9、10月),如果同时订票数量10张及以上,则优惠20%,10张以下,则优惠10%;在旅游淡季(1-3、6-8、11、12月),如果订票数量10张及以上,则优惠40%,10张以下,则优惠20%。编程计算订票总价格。(机票单价、订票时间、订票数量由键盘输入)(程序中必须包含switch语句)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-28 19:40:36 | 显示全部楼层
当然可以!下面是使用switch语句实现的计算订票总价格的代码:

  1. month = int(input("请输入订票的月份:"))
  2. quantity = int(input("请输入订票数量:"))
  3. price = float(input("请输入机票单价:"))

  4. total_price = quantity * price

  5. if month in [4, 5, 9, 10]:  # 旅游旺季
  6.     switch_case = {
  7.         True: total_price * 0.8,   # 订票数量大于等于10张
  8.         False: total_price * 0.9   # 订票数量小于10张
  9.     }
  10. else:  # 旅游淡季
  11.     switch_case = {
  12.         True: total_price * 0.6,   # 订票数量大于等于10张
  13.         False: total_price * 0.8   # 订票数量小于10张
  14.     }

  15. discounted_price = switch_case[quantity >= 10]

  16. print("订票总价格为:", discounted_price)
复制代码


希望这个代码能够帮助到你!如果你还有其他问题,随时来问哦~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-28 19:50:14 | 显示全部楼层
FishC 发表于 2024-3-28 19:40
当然可以!下面是使用switch语句实现的计算订票总价格的代码:

这个出现了错误,请帮我改正
#include <stdio.h>
#include <math.h>
int main()
{
    float month,quantity,price,total_price;
    printf("请输入旅游的月份,订票的数量,单张票价:");
    scanf("%f,%f,%f",&month,&quantity,&price);

    total_price = quantity * price;

    if month in [4, 5, 9, 10]
    switch_case = {
        True: total_price * 0.8,   # 订票数量大于等于10张
        False: total_price * 0.9   # 订票数量小于10张
    }
    else:  # 旅游淡季
    switch_case = {
        True: total_price * 0.6,   # 订票数量大于等于10张
        False: total_price * 0.8   # 订票数量小于10张
    }

    discounted_price = switch_case[quantity >= 10]

    print("订票总价格为:", discounted_price)
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-28 19:50:28 | 显示全部楼层
冬蕶 发表于 2024-03-28 19:50
这个出现了错误,请帮我改正
#include
#include
...


你的代码中有一些语法错误,我为你修改了一下:

#include <stdio.h>

int main() {
    int month, quantity;
    float price, total_price;
   
    printf("请输入旅游的月份,订票的数量,单张票价:");
    scanf("%d,%d,%f", &month, &quantity, &price);
   
    total_price = quantity * price;

    switch (month) {
        case 4:
        case 5:
        case 9:
        case 10:
            if (quantity >= 10) {
                total_price *= 0.8;
            } else {
                total_price *= 0.9;
            }
            break;
        default:
            if (quantity >= 10) {
                total_price *= 0.6;
            } else {
                total_price *= 0.8;
            }
            break;
    }
   
    printf("订票总价格为:%.2f\n", total_price);
   
    return 0;
}

请注意代码中的修改和调整。希望这次能够满足你的需求。如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-28 19:51:15 | 显示全部楼层
FishC 发表于 2024-3-28 19:50
你的代码中有一些语法错误,我为你修改了一下:

#include

你可以告诉我我的语法错误具体出现在哪里吗?
#include <stdio.h>
#include <math.h>
int main()
{
    float month,quantity,price,total_price;
    printf("请输入旅游的月份,订票的数量,单张票价:");
    scanf("%f,%f,%f",&month,&quantity,&price);

    total_price = quantity * price;

    if month in [4, 5, 9, 10]
    switch_case = {
        True: total_price * 0.8,   # 订票数量大于等于10张
        False: total_price * 0.9   # 订票数量小于10张
    }
    else:  # 旅游淡季
    switch_case = {
        True: total_price * 0.6,   # 订票数量大于等于10张
        False: total_price * 0.8   # 订票数量小于10张
    }

    discounted_price = switch_case[quantity >= 10]

    print("订票总价格为:", discounted_price)
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-28 19:51:31 | 显示全部楼层
冬蕶 发表于 2024-03-28 19:51
你可以告诉我我的语法错误具体出现在哪里吗?
#includ ...


你的代码中有几个语法错误:

1. 缺少头文件:需要添加 `#include <stdio.h>` 头文件以包含 `printf` 和 `scanf` 函数的声明。

2. switch 语句的语法错误:在 switch 语句中,需要使用整数类型的表达式进行判断,而不是浮点数。因此,将 `month` 的类型从 `float` 改为 `int`。

3. if-else 语句的错误:在 `if month in` 和 `else` 后面缺少冒号(:)以及缩进,导致语法错误。

4. switch_case 的赋值错误:在 C 语言中,没有直接将多个条件值与对应结果映射的内置结构(如字典)。你可以使用 if-else 条件语句实现相同的逻辑。

根据你的需求和代码修改的建议,这里给出已修正的代码:

  1. #include <stdio.h>

  2. int main() {
  3.     int month, quantity;
  4.     float price, total_price;

  5.     printf("请输入旅游的月份,订票的数量,单张票价:");
  6.     scanf("%d,%d,%f", &month, &quantity, &price);

  7.     total_price = quantity * price;
  8.    
  9.     switch (month) {
  10.         case 4:
  11.         case 5:
  12.         case 9:
  13.         case 10:
  14.             if (quantity >= 10) {
  15.                 total_price *= 0.8;
  16.             } else {
  17.                 total_price *= 0.9;
  18.             }
  19.             break;
  20.         default:
  21.             if (quantity >= 10) {
  22.                 total_price *= 0.6;
  23.             } else {
  24.                 total_price *= 0.8;
  25.             }
  26.             break;
  27.     }
  28.    
  29.     printf("订票总价格为:%.2f\n", total_price);
  30.    
  31.     return 0;
  32. }
复制代码


这个版本的代码应该能够正确执行,如果你还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 02:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表