c语言自由落体
❶ 求一个c语言小球自由落体的代码,要求超过100行
#include<stdio.h>
intmain(){
intcurve[31][37]={0};//图像保存在30*36矩阵内
doubleA,AM=30;//第一周期幅值
doublek=0.18;//幅值递减率
inti,x,y;
for(i=0;i<4;++i){//共画出4个周期
A=(1-i*k)*AM;
for(x=0;x<9;++x){//每个周期用9个点描画
y=-(int)(x*A*(x-8)/16.0);
curve[y][x+i*8]=1;
}
}
for(y=30;y>=0;--y){
for(x=0;x<37;++x){
if(curve[y][x])printf("+");
elseprintf(".");
}
printf(" ");
}
return0;
}
❷ c语言求自由落体
1、
按你写的scanf("请输入时间:%d",&t) ;
那么输入时,引号内所有的内容都要输入,例如想输入t的值为5,那么你需要输入
请输入时间:5
一般不是这样写的,而是用printf语句输出提示语句,用scanf语句输入数值。
printf("请输入时间:");
scanf("%d",&t);
2、
pow函数一般要求两个参数都是double型,至少第一个参数严格要求是double型,因此pow(t,2)不符合标准(个别简化版本允许两个都是int型)。应该将t强制转为double型,即:pow((double)t,2)
程序:
#include<stdio.h>
intmain()
{
intg,t;
doubles;
printf("请输入时间:");
scanf("%d",&t);
g=10;
s=g*pow((double)t,2)/2;
printf("在前%d秒内下落的距离:%.2f",t,s);
return0;
}
运行示例:
❸ c语言程序设计小球的自由落体运动
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(void)
{int gmode,gdriver=DETECT;
void *ball;
int x,y,t,f,v;
unsigned int size;
initgraph(&gdriver,&gmode, " ");
x=100;
y=200;
t=0;
f=0.1;
circle(x+10,y,10);
size=imagesize(x,y-10,x+20,y+10);
ball=malloc(size);
setfillstyle(SOLID_FILL,BLACK);
while(!kbhit()){
cleardevice();
t++;
y=y-9.8*(1-f)*t*t/2;
outtextxy(100,100, "v ");
v=(1-f)*9.8*t;
circle(x+10,y,10);
printf( "%d ",v);
delay(1000);
}
free(ball);
closegraph();
return 0;
❹ 编写自由落体运动的C语言程序
公式:h=1/2*gt^2,g=9.8
#include<stdio.h>
#include<math.h>
main()
{
floath,t;
printf("pleaseinputheight: ");
scanf("%f",&h);
t=sqrt(2*h/9.8);
printf("Thetimeis:%f",t);
getch();
}
❺ C语言-自由落体
#include<stdio.h>
voidJiSuan(double&h,inta[],intn)
{
inti,j;
for(i=0;i<n;i++)//一共收入了n个数
{
h=100.0;
for(j=0;j<a[i];j++)//根据数的大小知道到底是第几次求高
{
h=h*0.7;
}
if(a[i]==0)//要是最后一个数据为0,则程序停止
{
return;
}
printf("%.2f ",h);
}
}
voidmain()
{
doubleh=100.0;
int*p,i,n;
printf("请输入数组长度: ");//动态数组
scanf("%d",&n);//n值即为要求多少组所要求的数据
p=newint(n);
printf("请输入数据: ");
for(i=0;i<n;i++)
{
scanf("%d",(p+i));
}
JiSuan(h,p,n);
}
/*有问题可以HI我,呵呵*/
/*由于不知道要求多少组数据,故采用了动态数组*/
❻ C语言 自由落体
m = m/2; y = y+m*3;
表明的是 一次弹起到最高点的时候经过的路程,问题是什么? 楼主可以看看 是第N次落地时候反弹多高,共经过多少米,楼主的计算公式比它多了个最后弹起的高度 ,应该减去最后一次弹起的高度!
举个例子 1000米的时候 弹起一次反弹多高呢 ? 显然是500 经过的路程呢 1000 按照楼主的计算公式就是1500米,多在了最高多计算了一次 减去就行了!改程序的循环部分 我还没没有想好 ,不过按下面这样改
#include<stdio.h>
#include<string.h>
int main()
{
float m,n,i,y=0;
scanf("%f%f",&m,&n);
for(i=0;i<n;i++)
{
m=m/2;
y=y+m*3;
}
y -= m;
printf("%.2f %.2f\n",m,y);
}
❼ C语言关于小球自由落体的循环设计
#include<stdio.h>
#include<math.h>
int main()
{int m,i;
double sum=0,n;
printf("输入小球落下的高度,小球反弹次数: ");
scanf("%lf %d",&n,&m);
sum+=n;
for(i=0;i<m;i++)
{
n=n/2.0;
printf("第%d次弹跳%lf高 ",i+1,n);
if(i<m-1)
{
sum+=n*2;
printf("弹跳第%d次下一次没到,经过的路程: %lf ",i+1,sum);
}
printf(" ");
}
printf("前%d次弹跳共经过:%lf ",m,sum);
return 0;
}