C语言使用 if 或 else if 语句实现的长途电话计费程序

题目描述

长途电话计费方式为:3分钟收费0.6元(不足3分钟按3分钟计费)

3分钟以后超过1分钟增收0.3元(不足1分钟,按1分钟计费)

若通话时间在24点至晨8点之则按半价收费

源代码

以下是使用 ifelse if 语句实现的长途电话计费程序示例:

#include <stdio.h>

int main() {
    int start_hour, start_min, end_hour, end_min;
    double rate = 0.6;  // 默认费率为0.6元/3分钟

    printf("请输入起始时间(小时 分钟):");
    scanf("%d %d", &start_hour, &start_min);
    printf("请输入结束时间(小时 分钟):");
    scanf("%d %d", &end_hour, &end_min);

    // 计算通话时间(单位:分钟)
    int total_minutes = (end_hour - start_hour) * 60 + (end_min - start_min);

    // 判断是否在夜间时段
    int is_night_time = 0;  // 默认为非夜间时段
    if ((start_hour >= 0 && start_hour < 8) || (end_hour >= 0 && end_hour < 8) || (end_hour == 24)) {
        is_night_time = 1;
    }

    double cost = 0.0;  // 总费用
    int curr_minutes = 0;  // 当前累计分钟数

    if (is_night_time) {
        // 夜间时段按半价收费
        while (curr_minutes < total_minutes) {
            if (curr_minutes + 3 <= total_minutes) {
                // 剩余时间超过3分钟,按3分钟收费
                cost += 0.3;
                curr_minutes += 3;
            }
            else {
                // 剩余时间不足3分钟,按剩余时间计费
                int remaining_min = total_minutes - curr_minutes;
                cost += remaining_min * 0.3 / 3;
                curr_minutes = total_minutes;
            }
        }
    }
    else {
        while (curr_minutes < total_minutes) {
            if (curr_minutes + 3 <= total_minutes) {
                // 剩余时间超过3分钟,按3分钟收费
                cost += rate;
                curr_minutes += 3;
            }
            else {
                // 剩余时间不足3分钟,按剩余时间计费
                int remaining_min = total_minutes - curr_minutes;
                cost += remaining_min * rate / 3;
                curr_minutes = total_minutes;
            }

            if (curr_minutes > 3) {
                // 超过3分钟时,每增加1分钟增收0.3元
                cost += 0.3;
            }
        }
    }

    printf("通话时间:%d 分钟\n", total_minutes);
    printf("费用:%.1f 元\n", cost);

    return 0;
}

在以上代码中,根据题目要求的计费方式,使用 ifelse if 条件语句来判断是否在夜间时段,然后分别计算费用。如果是夜间时段,则按半价收费,否则按正常费率收费。其余部分与前述示例代码相同。

程序执行示例:

请输入起始时间(小时 分钟):19 30
请输入结束时间(小时 分钟):9 10
通话时间:700 分钟
费用:235.8 元

需要注意的是,以上代码实现了题目要求的长途电话计费方式,但同样还有一些细节需要进一步考虑和完善,如输入的起始和结束时间的合法性、输出格式等。在具体项目中使用时,需根据实际需求进行适当的修改和测试。

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享