原题链接:[编程入门]自由下落的距离计算
0.0分
4 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
 
为什么我算出来不一样呢 #include<stdio.h> int main() { int n,i; double h,c=0.0,sum=0; scanf("%lf %d",&h,&n); for(i=0;i<n;i++) { c=h; h=h/2; sum=c/2+c+sum; } printf("%.2lf %.2lf",h,sum); return 0; }#include<stdio.h> int main() { int i,M,N; //M是初始高度,N是落地次数 double j,k,sum=0; //j用来存储落地N次后的高度,k表示落地1次的总行程距离 scanf("%d %d",&M,&N); j = M; k = M; for(i = 1;i <= N; i++) { j = j * 1.0 / 2; sum = sum + k; k = M ; // 落地-弹起-落地,恰好是落地N次后的一个M高度 M = M * 1.0 / 2; } printf("%.2lf ", j); printf("%.2lf", sum); return 0; }@神鬼一刀流 多了个 printf("%f\n",m);#include<stdio.h> int main() { int n; //落地次数 float m,path_length=0.0;//m为初始高度,path_length为第n次落地时经过路径的长度,此时m值为反弹高度 scanf("%f %d",&m,&n); path_length = m; for(int i=1; i<n; i++) { path_length = path_length + m; m = m/2; } m = m/2; printf("%f\n",m); printf("%.2f %.2f\n",m,path_length); return 0; }