第九类、实际应用(27 道)
1.自由落体:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再
落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?
include <stdio.h>
void main() {
double s = 100, h = s / 2;
int i;
for (i = 2; i <= 10; i++) {
s = s + 2 * h;
h = h / 2;
}
printf("s=%.6lf\n", s);
printf("h=%.6lf\n", h);
}
2.计算天数:输入年月日,求当天是那年的第几天?
include <stdio.h>
void main() {
int y, m, d, s, i;
scanf("%d%d%d", &y, &m, &d);
s = d;
for (i = 1; i < m; i++)
if (i==1||i==3||i==5||i==7||i==8||i==10||i==12)
s += 31;
else if (i==4||i==6||i==9||i==11)
s += 30;
else if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
s += 29;
else
s += 28;
printf("%d", s);
}
3.奖金提成:企业发放的奖金根据利润提成:
00 万元 < 利润 <= 10 万元,高出 00 万元的部分,奖金可提成 10%;
10 万元 < 利润 <= 20 万元,高出 10 万元的部分,奖金可提成 7.5%;
20 万元 < 利润 <= 40 万元,高出 20 万元的部分,奖金可提成 5%;
40 万元 < 利润 <= 60 万元,高出 40 万元的部分,奖金可提成 3%;
60 万元 < 利润 <= 100 万元,高出 60 万元的部分,奖金可提成 1%;
100 万元< 利润 ,高出 100 万的部分,奖金可提成 1%;
从键盘输入当月利润 n,求应发放奖金总数?
include <stdio.h>
void main() {
double n,bonus,bonus10,bonus20,bonus40,bonus60,bonus100;
printf("Please enter the total profit of the month:");
scanf("%lf", &n);
bonus10 = 100000 * 0.1;
bonus20 = bonus10 + 100000 * 0.075;
bonus40 = bonus20 + 200000 * 0.05;
bonus60 = bonus40 + 200000 * 0.03;
bonus100 = bonus60 + 400000 * 0.015;
if (n <= 100000)
bonus = n * 0.1;
else if (n <= 200000)
bonus = bonus10 + (n - 100000) * 0.075;
else if (n <= 400000)
bonus = bonus20 + (n - 200000) * 0.05;
else if (n <= 600000)
bonus = bonus40 + (n - 400000) * 0.03;
else if (n <= 1000000)
bonus = bonus60 + (n - 600000) * 0.015;
else if (n > 1000000)
bonus = bonus100 + (n - 1000000) * 0.01;
printf("bonus=%lf", bonus);
}
4.出租车计价:根据某城市普通出租车收费标准编写程序计算车费,标准如下:
起步里程为 3 公里,起步费 10 元;超起步里程后 10 公里内,每公里 2 元;超过
10 公里以上的部分加收 50%的回空补贴费,即每公里 3 元;营运过程中,因路阻
及乘客要求临时停车的,按每 5 分钟 2 元计收(不足 5 分钟则不收费)。输入在
一行中,给出输入行驶里程(单位为公里,精确到小数点后 1 位)与等待时间
(单位为分钟),其间以空格分隔。输出乘客应支付的车费(单位为元),结果四
舍五入,保留到元。
include <stdio.h>
void main() {
double mile;
int time;
double price, price1, price2;
scanf("%lf%d", &mile, &time);
if (mile <= 3) {
price1 = 10;
} else if (mile <= 10) {
price1 = 10 + (mile - 3) * 2.0;
} else {
price1 = 10 + (10 - 3) 2.0 + (mile - 10) 3.0;
}
price2 = time / 5 * 2;
price = price1 + price2;
printf("%.0f", price);
}