问题及代码
<pre class="csharp" name="code">/*
烟台大学计算机与控制工程学院
文件名称:小球自由下落
作 者:展一
完成时间:2016年10月20日
题目描述
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数
输入
M N
输出
它在第N次落地时反弹多高?共经过多少米?保留两位小数,空格隔开,放在一行
样例输入
1000 5
样例输出
31.25 2875.00
*/
#include <stdio.h>
#include <stdlib.h>
int main( )
{
float M,h,s;
int i,N;
scanf("%f %d",&M, &N);
h=h/2;
for (i=2; i<=N; i++)
{
s=s+2*h;
h=h/2;
}
printf("%.2f %.2f\n",h, s);
return 0;
}
运行结果
知识点总结
循环结构的熟练使用,以小球每一次落地起跳为一个过程,小球每一次起跳总是落地高度的1/2,由此可简单计算
学习心得
一开始只用题目给出的M和N两个变量做题,导致思路混乱,后来引用高度h以及路程s,便轻易解题。