C语言邮寄包裹用switch语句

邮局邮寄包裹有如下规定:如果包裹的长、宽、高任意尺寸超过1米或重量超过40千克,不予邮寄;可以邮寄的包裹每件收取手续费5元,再根据不同的重量weight计算邮资。

weight<10kg 2.5元

10kg≤weight<30kg 2.0元

30kg≤weight<40kg 1.5元

请输入包裹的长、宽、高和重量,计算并输出邮资。用switch语句。

img

参考一下

#include <stdio.h>

int main() {
    float length, width, height, weight;
    float postage, handling_fee = 5.0;

    printf("请输入包裹的长、宽、高和重量,以空格分隔:");
    scanf("%f %f %f %f", &length, &width, &height, &weight);

    if (length > 1.0 || width > 1.0 || height > 1.0 || weight > 40.0) {
        printf("包裹尺寸或重量超过限制,无法邮寄!\n");
        return 0;
    }

    switch ((int)weight / 10) {
        case 0:
            postage = 2.5;
            break;
        case 1:
            postage = 2.0;
            break;
        case 2:
            postage = 1.5;
            break;
        default:
            printf("重量超过限制,无法邮寄!\n");
            return 0;
    }

    postage *= weight;
    postage += handling_fee;
    printf("邮资为:%.2f元\n", postage);

    return 0;
}


  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7639541
  • 这篇博客你也可以参考下:详解C语言中的switch语句
  • 除此之外, 这篇博客: C语言程序设计 选择结构程序设计中的 3 利用switch语句实现多分支选择结构 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • switch(表达式)
    {
    case 常量表达式1: 语句1
    case 常量表达式2: 语句2

    case 常量表达式n: 语句n
    default: 语句n+1
    }
    例如:按照考试成绩的等级输出百分之分数段
    在这里插入图片描述
    说明:
    1.switch后面括号内的“表达式”,可以是数值型或字符型型数据。
    2.表达式的值与某一个case后面的常量表达式的值相等时,就执行case后面的语句,若所有的常量表达式的值都没用与表达式匹配,就执行default后面的语句。
    3. 每一个case的厂里了表达式的值必须互不相同。
    4. 各个case和default的出现次序不影响执行结果。
    5. 若执行完一个case后面的语句,流程控制转移下一个case继续执行。
    6. 终止switch语句的执行,可以用一个break语句来达到此目的。例如:
    在这里插入图片描述
    在这里插入图片描述

  • 您还可以看一下 贺利坚老师的C语言及程序设计初步课程中的 用switch语句实现多分支结构小节, 巩固相关知识点