用C语言编在一个游乐园,儿童1.2米以下的不买票,1.2至1.5米买半票,1.5以上买全票,还要统计
- 提问者网友:轮囘Li巡影
- 2021-10-31 05:17
- 二级知识专家网友:傲气稳了全场
- 2021-10-31 05:31
这是一个关于“if...else if...else...”的程序,实现起来比较简单。由于题主在问题描述时没有详细的说明,所以我在代码实现中臆测了全款价格为25元,题主可以自行修改。下面是程序运行时的截图:
我使用的计算机是Windows 10 32-bits中文版,使用的编译器是MinGW w64。其他x86平台的操作系统和编译器应该也可以得到相同的运行结果。
需要注意的是:
① cmd下第一条命令是编译源代码程序“fare.c”(保存在了D:\下),并生成可执行文件“main.exe”。
② cmd下第二条命令就是调用“main.exe”以及之后运行、交互的结果。由图片可知进行了出错处理、免费票、半价票和全价票的判断、处理。
下面是“fare.c”文件的源代码:
----------fare.c----------
#include <stdio.h>
// 用下面三个宏通过身高辨别收费标准
// 如此设计便于题主可自行修改
#define NO_FARE_LBOUND (0.0F)
#define HARF_FARE_LBOUND (1.2F)
#define FULL_FARE_LBOUND (1.5F)
// 题主没有说明全票的价格,
// 我在此假设为25元
double full_fare = 25.0F;
// 此函数输入身高,获得票价
// 副作用是在STD-OUT打印折扣信息
double get_fare(double height);
// 进行记账的程序
// 由于题主没有说明如何记录所以执行自行设计
void record_fare(double fare) { }
int main(void) {
double height; // 用于存储身高
double fare;
// 由于程序要持续工作,所以使用“死”循环
while(1) {
printf("Welcome to our Amusement park!\n");
printf("\tPlease tell me your height: ");
scanf("%lf", &height);
fare = get_fare(height);
// 进行出错处理
if (-1 != fare) {
record_fare(fare);
}
printf("\n");
}
return 0;
}
double get_fare(double height) {
double fare;
if (height >= FULL_FARE_LBOUND) { // 关于全价的判断
fare = full_fare;
printf("\tThe ticket price is $%.2f.\n", fare);
} else if (height >= HARF_FARE_LBOUND) { // 半价判断
fare = full_fare * 0.5;
printf("\tWe provide a harf discount, "
"and you only need to pay $%.2f.\n", fare);
} else if (height >= NO_FARE_LBOUND) { // 免费判断
fare = 0.0F;
printf("\tEverything's free, please come in.\n");
} else { // 出错处理
fare = -1.0F;
fprintf(stderr, "Error: height data mistake, the"
" lower bound is %.2f.\n", NO_FARE_LBOUND);
}
return fare;
}
- 1楼网友:千夜
- 2021-10-31 07:14
c语言是什么
- 2楼网友:鱼忧
- 2021-10-31 06:46
这个是最基本的条件判断,给你个简单思路
float sg; //身高
if (sg<1.2)
{
///不用买票
}
else
if (sg>=1.2 && sg<1.5)
{
//统计
}
else
...