❶ c語言編程,一小球從100米的高處落下,每次彈起的高度都是前一次的四分之
#include<stdio.h>
int main()
{int i=0;
float s=100,h=100*0.75;
while(s<590)
{
s+=2*h;
h*=0.75;
i++;
}
printf("落地次數=%d ",i);
return 0;
}
❷ c語言一球從h米高度自由落下,每次落地後反跳回原高度的一半, 求它在第n次落地時,共經過多少米
學好C語音,數學功底一定要好,這個演算法可以用遞歸完成,但是考慮到無限情況,最好是建立一個數學模型出來,這里可以計算一個模型公式:S=2x + x*(n-1)/n
這里n與你彈跳的次數相關,假設彈9下,n = 2^(9-1)可以無限加大,值就會更精確,
那麼帶入公式就很容易得到結果:
假設從10米掉下,彈9下:
S = 20 + 10*(255/256)
❸ 跪求c語言彈球游戲詳細注釋
等我有時間吧
❹ c語言小游戲的一些問題(求彈球c語言能用的源程序)
彈球太難啦 我只有那個貪吃蛇的 不知道可以不可以
❺ C語言 一個球從100米高度自由落下,每次落地後反跳回原來高度的一半,再落下,求第n次落地時走過的路程。
#include<stdio.h>
#define F(x) x*x-3
void main()
{
float sum=0;
float h=100;
int n;
int i;
printf("Please type in n:");
scanf("%d",&n);
sum=h;
for(i=2;i<=n;i++)
{
sum+=h;
h=h/2;
}
printf("總路程為:%f ",sum);
}
❻ C語言初級問題 反彈
你的程序問題太多,我重新寫了個。你復制編譯看下。
#include<stdio.h>
int main()
{
float n,m,sum1,high1;//n為初始高度,m為第m次落下次數,sum1第一次路程,high1第一次反彈
float high = 0;//high為第m次反彈高度
float sum = 0;//sum為第m次落地總路程
int i=2;
printf("請輸入n和m的值:");
scanf("%f %f",&n,&m);//如輸入40 3注意中間加空格
sum1 = n;
high1 = n/4;
sum = sum1;
high = high1;
while(i++<=m)
{
sum = sum + 2*high;
high = high/4;
}
if(m==1)
{
printf(" 第m次落地時的總路程為:%.2f ",sum1);
printf(" 第m次落地後反彈的高度為:%.2f ",high1);
}
else
{
printf(" 第m次落地時的總路程為:%.2f ",sum);
printf(" 第m次落地後反彈的高度為:%.2f ",high);
}
return 0;
}
❼ C語言,一個球從100米高度自由落下,每次落地後反彈回原高度的一半,再落下。求它在第10次落地時
sn=sn+2*hn; 前邊的sn的值就是,上一次sn的值加這次一上一下的值么。
一上一下就是2次么,2次就是乘上高度的2倍么。比如第一次彈起來,上去了50米 那下來也是50米啊,再接觸到地面那就是第二次彈起了是不是。第二次也是上去25米,下來25米,接觸到地面了就是第三次了,依此類推不都是高度的2倍么。
仔細理解一下是不是。
❽ 用c語言編寫 不規則多邊形內彈球 有場
編寫程序,求由鍵盤按順時針方向輸入n個頂點坐標的多邊形周長。註:各頂點坐標以結構體表示,n值不超過10。輸入:第一行輸入一個整數,作為n值;以後每行兩個浮點數,為多邊形各頂點的坐標。輸出:多邊形的周長,精確到小數點後2位。樣例1:輸入4
❾ ●●●●C語言~一個球從100米高度自由落下,每次落地後反彈回原高度的一半,再落下。求它在第10次落地時,
題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在
第10次落地時,共經過多少米?第10次反彈多高?
1.程序分析:見下面注釋
2.程序源代碼:
main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地時共經過的米數*/
hn=hn/2; /*第n次反跳高度*/
}
printf("the total of road is %f\n",sn);
printf("the tenth is %f meter\n",hn);
}
❿ 怎麼用c語言編一個簡單彈球問題
/*Ball.h:定義結構體和BALL相關的函數*/
#ifndef _BALL_VC_SUPER_ADMI_2009_12_13_INCLUDE_
#define _BALL_VC_SUPER_ADMI_2009_12_13_INCLUDE_
typedef struct tagPOINT3D //3D坐標系
{
float x;
float y;
float z;
}POINT3D;
typedef struct tagBALL //球
{
POINT3D cur_coor;
POINT3D speed;
float radius;
}BALL;
typedef struct tagBOX //球的長方體運動場所,中空
{
POINT3D angle_coor[8]; //坐標,從下往上,順時針
float length;
float width;
float height;
}BOX;
void init_box(BOX *mybox,POINT3D origi_coor,POINT3D LWH)
{
int i;
mybox->height=LWH.x;
mybox->width=LWH.y;
mybox->height=LWH.z;
for(i=0;i<8;i++)mybox->angle_coor[i]=origi_coor;
mybox->angle_coor[1].x=origi_coor.x+LWH.x;
mybox->angle_coor[2].x=origi_coor.x+LWH.x;
mybox->angle_coor[2].y=origi_coor.y+LWH.y;
mybox->angle_coor[3].y=origi_coor.y+LWH.y;
for(i=4;i<8;i++)mybox->angle_coor[i].z=origi_coor.z+LWH.z;
mybox->angle_coor[5].x=origi_coor.x+LWH.x;
mybox->angle_coor[6].x=origi_coor.x+LWH.x;
mybox->angle_coor[6].y=origi_coor.y+LWH.y;
mybox->angle_coor[7].y=origi_coor.y+LWH.y;
}
void move_in_box(BALL* myball,BOX mybox) //勻速運動
{
myball->cur_coor.x+=myball->speed.x;
myball->cur_coor.y+=myball->speed.y;
myball->cur_coor.z+=myball->speed.z;
}
void hit_wall(BALL* myball,POINT3D dir) //撞牆
{
myball->speed.x*=dir.x;
myball->speed.y*=dir.y;
myball->speed.z*=dir.z;
}
int coll_dete_rad_ign(BALL* myball,BOX mybox) //檢測(忽略半徑)
{
POINT3D dir;
dir.x=1;dir.y=1;dir.z=1;
if(myball->cur_coor.x<=mybox.angle_coor[0].x ||myball->cur_coor.x>=mybox.angle_coor[6].x)
dir.x=-1;
if(myball->cur_coor.y<=mybox.angle_coor[0].y ||myball->cur_coor.y>=mybox.angle_coor[6].y)
dir.y=-1;
if(myball->cur_coor.z<=mybox.angle_coor[0].z ||myball->cur_coor.z>=mybox.angle_coor[6].z)
dir.z=-1;
if(dir.x==-1 ||dir.y==-1 ||dir.z==-1){hit_wall(myball,dir);return 1;}
return 0;
}
#endif
//BALL.H文件結束
/*Ball.c:測試代碼*/
#include "Ball.h"
#include <stdio.h>
int main(void)
{
POINT3D origi;
POINT3D LWH;
BOX mybox;
BALL myball;
int i;
origi.x=0;origi.y=0;origi.z=0;
printf("矩形空間尺寸:");
scanf("%f%f%f",&LWH.x,&LWH.y,&LWH.z);
printf("球的初始坐標:");
scanf("%f%f%f",&myball.cur_coor.x,&myball.cur_coor.y,&myball.cur_coor.z);
printf("球的速度:");
scanf("%f%f%f",&myball.speed.x,&myball.speed.y,&myball.speed.z);
/* LWH.x=10;LWH.y=10;LWH.z=10;
myball.cur_coor.x=5;myball.cur_coor.y=5;myball.cur_coor.z=5;
myball.speed.x=0.2;myball.speed.y=0.5;myball.speed.z=1;*/
i=0;init_box(&mybox,origi,LWH);
printf("\n相關信息如下:\n");
printf("矩形空間尺寸--L:%f,W:%f,H:%f\n",LWH.x,LWH.y,LWH.z);
printf("球的初始坐標--X:%f,Y:%f,Z:%f\n",myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);
printf("球的初始速度--X:%f,Y:%f,Z:%f\n",myball.speed.x,myball.speed.y,myball.speed.z);
printf("碰撞點坐標如下:\n");
while(i<10)
{
if(coll_dete_rad_ign(&myball,mybox)==1)
{
i++;
printf("%f,%f,%f\n",myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);
}
move_in_box(&myball,mybox);
}
return 0;
}