一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。
#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> int main() { double sum=0; double high=100; double fantan=0; for(int i=0;i<10;i++) { sum+=fantan+high; fantan=high/2; high/=2; } printf("%f\n",sum); printf("%f\n",high); }
#include<stdio.h>
int main(){
float sn=100.0,hn=sn/2;
for(int n=2;n<=10;n++){
sn=sn+2*hn;
hn=hn/2;
}
printf("共经过%f米\n",sn);
printf("第十次反弹%f米\n",hn);
return 0;
该题目需要循环1...
用户登录可进行刷题及查看答案
该题目需要循环10次,在每一循环的时候,需要将下落的高度和回弹的高度加起来。需要注意的点,第10次下落不需要在计算回弹的距离了,所以需要特殊处理下。在计算每次高度的时候,会有小数存在,所以需要选用浮点数
#include <stdio.h> int main() { //总高度 double total_m = 100.0; //小球经历的米数 double total_sum = 0.0; for (int i = 0; i < 10; i++) { total_sum += total_m; total_m /= 2; total_sum += total_m; } //不需要计算第10次的反弹高度,所以减去 total_sum -= total_m; printf("小球总共经历%lf米, 第10次反弹%lf米\n", total_sum, total_m); return 0; }
登录后提交答案