解题思路:
首先需要清楚输入和输出分别是什么
输入:小球自由落体的高度M;以及小球反弹的次数N;
输出:小球第N次反弹的高度,小球在第N次反弹经过的总路程。
第一次反弹 路程:s1=M 反弹高度:h1=M/2;
第二次反弹 s2=s1+h1*2 h2=h1/2;
第三次反弹 s3=s2+h2*2 h3=h2/2;
....
以此类推,第n次反弹的高度等于前一次反弹高度的1/2,第n次反弹经过的总路程等于前一次反弹的路程加上前一次反弹高度的两倍。
注意事项:
反弹的总路程是指到第N次落地时的路程,不包括第N次反弹后的高度),然后对输出格式的要求是 保留两位小数。
参考代码:
int main() {
float m, n;
printf("请输入球抛下时的高度和弹回的次数:");
scanf("%f%f", &m, &n);
double h = m / 2;
double s = m ;
for (int i = 1;i < n;i++) {
s = s + 2 * h;
h = h * (1.0 / 2);
}
printf("%.2lf %.2lf", h, s);
return 0;
}
0.0分
0 人评分
哥德巴赫曾猜测 (C语言代码)浏览:1040 |
【排队买票】 (C语言代码)浏览:906 |
【绝对值排序】 (C语言代码)浏览:865 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:552 |
字符串输入输出函数 (C语言代码)浏览:2498 |
判定字符位置 (C语言代码)浏览:803 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:559 |
生日日数 (C语言代码)浏览:1516 |
printf基础练习 (C语言代码)浏览:1833 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:465 |