C程序:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
共经过多少米?第10次反弹多高?这是题目,我编写的程序,有一点不对,#include<stdio.h>main(){floatheight=100.0,sum_heigh...
共经过多少米?第10次反弹多高?这是题目,我编写的程序,有一点不对,
#include <stdio.h>
main()
{float height=100.0,sum_height;
int i;
clrscr();
for(i=1;i<=10;i++) {
sum_height=height+height/2;
height=height/2; }
printf("%fm\n",sum_height);
printf("%fm\n",height);
getch();
return 0;
}
在输出的时候,0.292969m /*这个输出不对,应该是299.609375m,我是不是逻辑错了,但我想,这算错这不会是小数啦*/
0.097656m 展开
#include <stdio.h>
main()
{float height=100.0,sum_height;
int i;
clrscr();
for(i=1;i<=10;i++) {
sum_height=height+height/2;
height=height/2; }
printf("%fm\n",sum_height);
printf("%fm\n",height);
getch();
return 0;
}
在输出的时候,0.292969m /*这个输出不对,应该是299.609375m,我是不是逻辑错了,但我想,这算错这不会是小数啦*/
0.097656m 展开
展开全部
这是个编程结合数学的问题,编程思路很简单,运用一个循环就好了,重点在于计算反弹总共经过多少米(第一次循环加一百米,之后的循环每次要加两倍)。以下是具体代码:
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
float high=100,t=100;
int i,n;
printf("Input:\n");
scanf("%d",&n);
for(i=0;i<n;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");
}
展开全部
#include <stdio.h>
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
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()这个函数。
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()这个函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错在for循环里,你这样赋值sum_height=(3/2)height 应该是sum_height+=height;你试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询