如何用C语言完成这个问题 一个球从100米的高处自由落下,触地后反弹到原高度的一半,问在第n次落地时?
一个球从100米的高处自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?注意:n从...
一个球从100米的高处自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?注意:n从键盘输入
展开
1个回答
展开全部
C语言代码如下:
#include<stdio.h>
int main() {
double d = 100; // 皮球在空中经过的距离,第一次落地时为100m
double h = 50; // 皮球反弹的高度,第一次反弹后为50m
int i, n;
scanf("%d", &n);
for (i = 2; i <= n; i++) { // 从第二次落地开始
d += h * 2; // 两次落地之间经过的距离为上次反弹高度的2倍
h = h / 2; // 下次反弹高度变为原来的一半
}
printf("第%d次落地时一共经过%fm, 第%d次反弹高度为%fm\n", n, d, n, h);
return 0;
}
运行结果如下:
追问
这个i表示的是什么呢
追答
i表示落地或反弹次数,i从2开始,一直遍历到n
就得到第n次落地时经过的距离和第n次反弹的高度
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询