C语言代码如下:
创新互联是一家集网站建设,安顺企业网站建设,安顺品牌网站建设,网站定制,安顺网站建设报价,网络营销,网络优化,安顺网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
#includestdio.h
int main() {
double d = 100; // 皮球在空中经过的距离,第一次落地时为100m
double h = 50; // 皮球反弹的高度,第一次反弹后为50m
int i, n;
scanf("%d", n);
for (i = 2; i = n; i++) { // 从第二次落地开始
d += h * 2; // 两次落地之间经过的距离为上次反弹高度的2倍
h = h / 2; // 下次反弹高度变为原来的一半
}
printf("第%d次落地时一共经过%fm, 第%d次反弹高度为%fm\n", n, d, n, h);
return 0;
}
运行结果如下:
根据你的题目和输出样式截图分析:
1、每次输出当前坠落的高度,及球本次坠落后经过的距离总和。
2、输出包含小数,因此高度及距离变量采用浮点数。
3、递归/循环只执行10次。
3、看你图上,输出浮点数小数不显示多余的0,因此打印格式要用%g而不是%f(最多保留6位)。
#include stdio.h
void drop(float height);
int main()
{
float height;
printf("初始高度:");
scanf("%f",height);
drop(height);
return 0;
}
void drop(float height)
{
static int cnt=1;
static float distance=0;//每次坠落后球移动的距离总和
if(height0){
distance+=height;
printf("第%d次高度%g\n",cnt,height);
printf("第%d次距离%g\n",cnt,distance);
if(cnt10)
cnt++,distance+=height/2,drop(height/2);
else
cnt=1,distance=0;
}
}
#includestdio.h
void main()
{
int t,n,i,k;
float h,sum;
scanf("%d", t);
for(i=t;i=0;i--)
{
scanf("%f %d",h,n);
sum=h;
for(k=1;kn;++k)
{
sum=sum+h;
h=h/2;
}
printf("%.2f %.2f/n",sum,h);
}
}
#include stdio.h
int main(void)
{
int i, n;
int repeat, ri;
double distance, height;
scanf("%d", repeat);
for(ri = 1; ri = repeat; ri++){
scanf("%lf%d", height, n);
distance = height;
while(n 0){
height = height / 2;
distance = distance + height * 2;
n--;
}
distance = distance - height * 2;
printf("distance = %.1f, height = %.1f\n", distance, height);
}
}
我刚运行过,绝对没问题!