public class dfgf {
public static void main(String[]args)
{
int x=100,y=800;
int speed=20;
int time=0;

while(time<5)
{


x=x+20*time*(int)Math.cos(45.0);
y=y-20*time*(int)Math.sin(45.0)-(int)(9.8*time*time)/2;
time++;
System.out.println(" x="+ x+" y="+ y);

}
}    
}
这个程序我不知道是什么问题x的值总是不会改变的, 不知道为什么?求教!

解决方案 »

  1.   

    (int)Math.cos(45.0); // 结果为0 
    x=x+20*time*(int)Math.cos(45.0); //想当于 x=x+20*time*0;
      

  2.   

    (int)Math.cos(45.0); 转整型为0; 改为(double)Math.cos(45.0)
      

  3.   

    再把其他变量也变成double的吧
      

  4.   

    (int)Math.cos(45.0)
    这个的值始终是0,cos45变成整数后结果为0.所以x始终不变。
    下面的(int)Math.sin(45.0)也是一样的。但是由于y后面还减了一个东西,所以y变了。
      

  5.   

    (int)Math.cos(45.0),这是强制类型转换即将Math.cos(45.0)转换为整数,就是0;所以x总是不变的!