实例分析 例4.6长途电话计费方式为: 3分钟收费0.6元(不足3分钟 ,按3分钟计费) 3分钟以后超过1分钟增收0.3 元(不足1分钟,按1分钟计费) 若通话时间在24点至晨8点之 前,则按半价收费,以此如何用c语言int main(void)函数,switch编译一个程序
时间: 2024-10-12 19:14:04 浏览: 24
DYNA3D.rar_DYNA3*_Dyna3d源程序_dyna 3d源代码_dyna3d4.6_接触碰撞
5星 · 资源好评率100%
在C语言中,你可以使用`main()`函数结合`switch`语句以及循环结构来模拟这个长途电话计费的例子。这里是一个简单的实例分析:
```c
#include <stdio.h>
double calculate_fee(int minutes, int is_night) {
double base_fee = 0.6;
double extra_fee = 0.3;
// 夜间半价处理
if (is_night) {
base_fee *= 0.5;
}
// 费用计算
switch (minutes) {
case 0:
return base_fee;
case 1 to 3:
return base_fee;
default:
// 首3分钟后每加1分钟收费额外费用
for (int i = 3; i < minutes; i++) {
base_fee += extra_fee;
}
return base_fee;
}
}
int main() {
int total_minutes;
int is_night; // 通过用户输入判断是否夜间
printf("请输入通话总分钟数(整数): ");
scanf("%d", &total_minutes);
printf("请输入1(白天)或2(夜间)以表示是否在夜间时段: ");
scanf("%d", &is_night);
if (is_night == 2) {
is_night = 1; // 转换为1(夜间)以便后续计算半价
}
double fee = calculate_fee(total_minutes, is_night);
printf("长途电话费为: %.2f元\n", fee);
return 0;
}
```
在这个程序中,`calculate_fee()`函数根据用户输入的分钟数和是否为夜间时间段计算费用。`main()`函数负责获取用户的输入并调用`calculate_fee()`。注意,`switch`在这里用于处理分钟数在0到3的情况,其余部分则通过循环计算超出3分钟后的费用。
阅读全文