自己写了一个程序,不知道错那了?帮忙看看~~~
Minecraft是一个颠覆性的高自由度游戏,其中文译名叫“我的世界”。之所以会有如此译名,原因在于这个游戏就像一个沙盒世界,玩家就像是个创世神一般。其颠覆性在于它不同于以往那些游戏“要你做去什么”,相反的,是由玩家去思考“我要做什么”。
说了这么一段,你们是不是很想上网搜一搜怎么玩呢?不过玩之前麻烦先帮Lrc解决一个问题。
这个游戏里面是可以制作逻辑电路的,通过简单的搭建,玩家可以制作出一个简单的TNT大炮。
假设现在Lrc想使用大炮轰地面上炸距离自己s米处的目标,大炮的发射仰角为A(单位角度),炮弹的初速度为v米/秒,TNT在发出后t秒爆炸,爆炸半径为r米(当目标到爆炸点的距离<=r时即视为击中),
炸药落地后不反弹。重力加速度取10m/s^2。问:Lrc能否击中目标?PS:目标与Lrc于同一平面
#include<stdio.h>
#include<math.h>
int main()
{
double s,a,v,t,r,T,h,l;//定义距离自己s米处的目标,大炮的发射仰角为A(单位角度),炮弹的初速度为v米/秒,TNT在发出后t秒爆炸,爆炸半径为r米
scanf("%lf%lf%lf%lf%lf",&s,&a,&v,&t,&r);
T=2*v*sin(a*3.1415926/180)/10;//飞行时间
if(t>=T)//判断是不是在空中爆炸
{
l=v*T*cos(a*3.1415926/180);//水平飞行距离
if(s-l<=r||l-s<=r)//判断满不满足击中目标
printf("nice!");
else printf("T^T");
}
if(t<T&&t>t/2)//判断是在空中哪个阶段爆炸
{
h=pow(v*sin(a*3.1415926/180),2)/20-(5*pow((t-T/2),2));//离地面高度
l=v*t*cos(a*3.1415926/180);//水平飞行距离
if(l-s<=r&&h<=r||s-l<=r&&h<=r)//判断满不满足击中目标
printf("nice!");
else printf("T^T");
}
if(t<=T/2)//判断是在空中哪个阶段爆炸
{
h=v*t*sin(a*3.1415926/180)-5*pow(t,2);//离地面高度
l=v*t*cos(a*3.1415926/180);//水平飞行距离
if(l-s<=r&&h<=r||s-l<=r&&h<=r)//判断满不满足击中目标
printf("nice!");
else printf("T^T");
}
}
我写了个这样的程序~~但是无论输入什么数据都是输出nice!
问题出在哪??
[ 本帖最后由 qq471402415 于 2013-12-29 19:20 编辑 ]