C程序:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在

2024-11-30 00:20:15
推荐回答(5个)
回答1:

这是个编程结合数学的问题,编程思路很简单,运用一个循环就好了,重点在于计算反弹总共经过多少米(第一次循环加一百米,之后的循环每次要加两倍)。以下是具体代码:

#include 
#include
#include
 
 main()

    float high=100,t=100;
    int i,n;
    printf("Input:\n");
    scanf("%d",&n);
    for(i=0;i        high=high/2;
        t+=2*high;
    }
    t-=2*high;
    printf("%d times:\n",n);
    printf("%.3f\n",t);
    printf("%.3f\n",high);
    system("pause");
}

回答2:

#include
main()
{float height=100.0,sum_height=100;
int i;
for(i=1;i<10;i++) {
height=height/2;
sum_height+=height*2;
}
printf("%fm\n",sum_height);
printf("%fm\n",height);
return 0;
}
第一次从100米高落下。
以后都是弹上落下所以乘以2

回答3:

#include
void main()
{float m=100.0,n=0,sum=0;
int i;
for(i=1;i<=10;i++) {
n=m/2;//m为初始高度,n为每次谈起的高度
sum=sum+m+n; //sum初始值为0
m=n;//变化下一次的弹起的初始高度
}
printf("%f\n",sum);
printf("%f\n",n);
system("pause");
}
再说下你的程序,第一,你的逻辑就有错误,你的sum_height只为每次的下落的高度+弹起的高度,以前的根本加进去。第二,我也不明白你为什么要加clrscr()这个函数。

回答4:

错在for循环里,你这样赋值sum_height=(3/2)height 应该是sum_height+=height;你试试看。

回答5: