/*烟台大学计算机与控制工程学院
All rights reserved.
作者:汪莹莉
完成时间:2016年10月21日
题目描述:
一球从M米高度自由落下,每次落地后返回原高度的一半,再落下。它在第N次落地式反弹多高?共经过多少米?
输入;
初始高度和次数
输出:
反弹时的高度和经过的路程
样例输入:
1000 5
样例输出:
31.25 2875.00
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
float s,h;
scanf("%f%d",&s,&n);
h=s/2;//小球必定落下一次,第一次即为s/2
for(i=2;i<=n;i++)
{
s=s+2*h;
h=h/2;
}
printf("%.2f %.2f\n",h,s);
return 0;
}
运行结果:
知识点总结:不管小球有没有反弹,其落下是必然的,所以“h=s/2"是必定有的,不能把它放在for中,另外一个程序中,int和float是可以同时用的。注意for中i的值。
学习心得:这次我注意到了一些细小的细节,使得程序更加完善