保护钟无艳和孙膑攻略:c语言怎么编啊.

来源:百度文库 编辑:高校问答 时间:2024/04/29 18:26:34
例如:一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹.求他在第10次落地时,共经过多少米?第10次反弹多高?

#include <stdio.h>

int main(void)
{
int i,j=100;
int total=0;

for(i=1;i<=10;i++)
{
total+=j;
j/=2;
}

printf("总共经过了:[%d]米\n",total);

}

main()
{
float i,j=100,sum=100;
/*i为跳跃次数,j为起始高度,sum为球经过路径的长度。
解题思路:1、每次的反弹高度等于掉落的距离的一半。
2、第二次降落的距离等于第一次反弹的高度
*/
for(i=1;i<=10;i++)
{
j=j/2;
sum=sum+2*j;
}
printf("第10次反弹的高度为:%f米\n一共经过了%f米",j,sum);
}

main()
{
flort i;
int j,s;
i=100;
s=0;
for(j=1;j<11;j++)
{
i=i+(i/2);
if(j=10) s=i;
}
printf("i=%d,s=%d\n",i,s);
}

main()
{
int i,j,s;
i=100;
s=0;
for(j=1;j<=10;j++)
{
i=i+(i/2);
if(j=10) s=i;
}
printf("%d,%d",i,s)
}

这样写的话怎么得到第十次反弹的高度啊?
再添加一个K参数,在i=i+(i/2)前面加上k=i/2,然后把下面的句子改成i=i+k

#include "stdio.h"

main(void)
{
int a[10],sum=100;
int i,j;
a[0]=100;
for(i=1,j=0;i<11;i++)
{
sum+=sum/2;
a[++j]=a[j]/2;
}
for(i=0;i<j;i++)
printf("第次%d跳起的高度是:%d\n ",i+1,a[i]);
printf("小球走过的总路程为:%d\n");
getch();
}