21.阶梯水费:为鼓励居民节约用水,自来水公司按用水量阶梯式计价的办法,
居民应交水费 y(元)与月用水量 x(吨)相关:当 x 不超过 15 吨时,y=4x/3;
超过后,y=2.5x-17。请编写程序实现水费的计算。
include <stdio.h>
void main() {
float x, y;
scanf("%f", &x);
if (x >= 0 && x <= 15)
y = 4 * x / 3;
else
y = 2.5 * x - 17;
printf("%.2f\n", y);
}
22.蠕虫爬井:一条蠕虫长 1 寸,在一口深为 N 寸的井的底部。已知蠕虫每 1 分
钟可以向上爬 U 寸,但必须休息 1 分钟才能接着往上爬。在休息的过程中,蠕虫
又下滑了 D 寸。就这样,上爬和下滑重复进行。问蠕虫需要多长时间才能爬出
井?要求不足 1 分钟按 1 分钟计算,假定只要在某次上爬过程中蠕虫的头部到
达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为
0)。输入格式:输入在一行中顺序给出 3 个正整数 N、U、D,其中 D<U,N 不超
过 100 但必须大于 0。输出格式:在一行中输出蠕虫爬出井的时间,以分钟为单
位。
include <stdio.h>
void main() {
int n, u, d, time = 0, curh = 0;
/ 输入井的深度,蠕虫上爬和下滑的距离 /
scanf("%d%d%d", &n, &u, &d);
while (1) {
time++;
curh += u; / 每爬一次,上升 u 距离 /
if (curh >= n) break;
time++;
curh -= d; / 休息一次,下滑 d 距离 /
}
printf("%d\n", time);
}
23.汽油自助服务:现在 90 号汽油 6.95 元/升、93 号汽油 7.44 元/升、97 号汽
油 7.93 元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”
两个服务等级,分别可得到 5%和 3%的折扣。编写程序,根据输入顾客的加油量
a,汽油品种 b(90、93 或 97)和服务类型 c(m – 自助,e – 协助),计算并
输出相应付款。
include <stdio.h>
void main() {
float je, jg;
int a, b;
char c;
scanf("%d %d %c", &a, &b, &c);
switch (b) {
case 90:
jg = 6.95;
break;
case 93:
jg = 7.44;
break;
case 97:
jg = 7.93;
break;
}
if (c == 'm') {
je = jg a (1 - 0.05);
} else {
je = jg a (1 - 0.03);
}
printf("%.2f", je);
}