java算术题

Seven的代码实验室 2012-06-10 01:02:32
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的值总是不会改变的, 不知道为什么?求教!
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lengwuqin 2012-06-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:

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

再把其他变量也变成double的吧
[/Quote]
++
zhou2008zhou_zhou 2012-06-10
  • 打赏
  • 举报
回复
(int)Math.cos(45.0),这是强制类型转换即将Math.cos(45.0)转换为整数,就是0;所以x总是不变的!
大盗懒羊羊 2012-06-10
  • 打赏
  • 举报
回复
(int)Math.cos(45.0)
这个的值始终是0,cos45变成整数后结果为0.所以x始终不变。
下面的(int)Math.sin(45.0)也是一样的。但是由于y后面还减了一个东西,所以y变了。。。。
lvleshuzhi 2012-06-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

(int)Math.cos(45.0); 转整型为0; 改为(double)Math.cos(45.0)
[/Quote]
再把其他变量也变成double的吧
lin3618241 2012-06-10
  • 打赏
  • 举报
回复
(int)Math.cos(45.0); 转整型为0; 改为(double)Math.cos(45.0)
LucEaspe 2012-06-10
  • 打赏
  • 举报
回复
(int)Math.cos(45.0); // 结果为0 
x=x+20*time*(int)Math.cos(45.0); //想当于 x=x+20*time*0;

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧