一个关于数组的问题!实在是郁闷!

maoerzuozuo 2004-08-19 11:36:23
先看我的程序
import java.math.*;
class test
{
public static void main(String args[])
{
int num[]=new int[25];
for(int i=0,j=1;i<25&&j<26;i++,j++)
{
num[i]=(int)(Math.random()*100);
System.out.println(num[i]); System.out.println(num[j]);
}
}
}
这个程序的用意是想打印出随机数和下一个随机数
例如
产生 11 22 33 44 这几个随机数,我要让先显示一个随机数再显示下一个随机数
11
22

22
33

33
44

44
55

可是现在产生的是
11
0

22
0

33
0

44
0
这个是怎么会事啊??好象num[j]产生的全是0啊!
...全文
153 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tasia 2004-08-20
  • 打赏
  • 举报
回复
在你的程序中,当j的值是25时,num[j]已经是越界的啦。
程序改成这样就好了:
class test
{
public static void main(String args[])
{
num[]=new int[25];
for(int i=0;i<25;i++)
{
num[i]=(int)(Math.random()*100);
System.out.println(num[i]);
}
for(int i=0,j=1;j<25;i++,j++) // 只要j < 25就可以了。
{
System.out.println(num[i]);
System.out.println(num[j]);
}
}
}

Math.random()是在java.lang.Math;中,所以不用import java.math.*;
playboylee 2004-08-20
  • 打赏
  • 举报
回复
支持楼主,学习,学习,再学习
maoerzuozuo 2004-08-20
  • 打赏
  • 举报
回复
恩。是有这么一个毛病,但是我弄好了!嘿嘿!
Tomcat4 2004-08-20
  • 打赏
  • 举报
回复
呵呵,搂住估计不是学习计算机出身的!
minghuitian 2004-08-20
  • 打赏
  • 举报
回复
哈哈,学习!
up
lxxldd 2004-08-20
  • 打赏
  • 举报
回复
共同学习
戚爱斌 2004-08-20
  • 打赏
  • 举报
回复
越界,应该会有异常的!
射天狼 2004-08-20
  • 打赏
  • 举报
回复
我晕了~~~~~~~
maoerzuozuo 2004-08-20
  • 打赏
  • 举报
回复
谢谢大家的支持!!!
sam_KING 2004-08-20
  • 打赏
  • 举报
回复
楼主的程序还是有错误:

1:数组大小的问题,应该 int num[]=new int[26];

2:在for(int i=0;i<25;i++)
{
num[i]=(int)(Math.random()*100);
System.out.println(num[i]);
这段里多了
System.out.println(num[i]);这句,由于你定的数组是大了点,所以错误的显示就在显示器上看不到,你只看到了显示的后半段,前半段是把你的26个随机数依次显示了一边
就好比是这样显示的
11
22
33
44
11
22
22
33
33
44 如果你把数组的大小定的小点就会看到错误的地方了
poco 2004-08-20
  • 打赏
  • 举报
回复
这个还是要注意一下,基本的结构可不能糊涂
pigrain 2004-08-19
  • 打赏
  • 举报
回复
好像数组越界了
maoerzuozuo 2004-08-19
  • 打赏
  • 举报
回复
哈哈!自己搞出来了!!我知道num[j]为什么不显示了,因为他比i要大一个,i的值已经随机产生了,但是j的值还没有产生!呵呵!!所以就是0了啊!
正确的答案应该是
import java.math.*;
class test
{
public static void main(String args[])
{
num[]=new int[25];
for(int i=0;i<25;i++)
{
num[i]=(int)(Math.random()*100);
System.out.println(num[i]);
}
for(int i=0,j=1;i<25&&j<26;i++,j++)
{
System.out.println(num[i]);
System.out.println(num[j]);
}
}
}
这个分应该给我自己~嘿嘿~
算了,只当交个朋友好了!
来的人都有分啊!!
哈哈!

62,614

社区成员

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

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