题目要求:
2013年起,火车票退票费比例下调:票面乘车站开车时间前48小时以上的按票价5%计退票费。同时,车票退票费的计算方法不再四舍五入到元为单位,而是以5角为单位:尾数小于0.25元的舍去、不小于0.25元且小于0.75元的计为0.5元、不小于0.75元的进为1元。编写一个函数,计算退票费,假定退票时间距离开车时间在48小时以上。函数原型如下:
double CancelFee(double price);
输入一个实数,表示火车票票面价格。
输出一个实数,表示退票费,结果保留一位小数。
#include <stdio.h>
double CancelFee(double price);
int main() {
double price, i;
scanf("%lf", &price);
i = CancelFee(price);
printf("%.1lf", i);
return 0;
}
double CancelFee(double m) {
double i, c = 0;
m = m * 0.05;
for (i = 0; i <= m; i++) {
if (m >= i && m < i + 1) {
c = m - i;
if (c < 0.25) {
c = 0;
} else if (c >= 0.25 && c <= 0.75) {
c = 0.5;
} else if (c > 0.75) {
c = 1;
}
i = i + c;
break;
}
}
return i;
}