小弟初学JAVA写的第一个象样的程序,希望哪位大哥能帮一把!

aofeimx 2005-12-02 06:55:03
以下是小弟初学JAVA写的第一个象样的程序(随机生成5000个1~48的整数,并统计每个数出现多少次)
可是下面的程序运行的结果却都是 0 :122次
这样循环49行,但每行都一样啊。。。
我查了好几遍,可还是没有查到原因,希望哪位大哥能帮小弟一把。。。


package 产生随机数统计并输出;
import java.util.*;

public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int i,j,no[],no_sum[];

/*
no[]数组存放数字,如,no[1]放数字1;
no_sum[]数组存放该数的出现次数,如,no_sum[1]=5表示数字1出现的次数是5次
*/

no=new int[50];
no_sum=new int[5000];
Random rndTemp = new Random(); //声明一个随机数的类rndTemp

for(i=0;i<=48;i++);{
no[i]=i;
no_sum[i]=0;
}
for(i=1;i<=5000;i++){
int intRnd = (Math.abs(rndTemp.nextInt()))%49;

/*
用nextInt()产生不同的随机数,先对随机数取绝对值,再求49的余数,这样intRnd就是0~48的数了
*另外,intRnd本身就存在了,不需要在前面声明(编写时走了弯路)
*/

for(j=0;j<=48;j++){
if(intRnd==no[j]) {
no_sum[j]++;
} //对随机数进行统计
}
}
for(i=0;i<=48;i++) System.out.println (no[i]+" : "+no_sum[i]+"次");
}
}
...全文
517 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
shouyenet1 2005-12-06
  • 打赏
  • 举报
回复
我也来试一下,但是有点不明白随机函数 可以生成0吗?


import java.util.*;
public class intcount
{
public static void main(String args[])
{
int count[];
count=new int[49];
Random m=new Random();
for(int i=1;i<=5000;i++)
{
int k=(int)m.nextInt(49);
if (k==0)
i--;
else
count[k]++;
}
int b=0;
for(int i=1;i<49;i++)
{
System.out.println("数字"+i+"出现的次数是"+count[i]) ;
b=b+count[i];
}
System.out.println(b);
}
}
TONYBLARED 2005-12-06
  • 打赏
  • 举报
回复
记得给分啊。
aofeimx 2005-12-04
  • 打赏
  • 举报
回复
奔跑的犀牛,太感谢你了。。。简直就是好人啊。。。
yAnGmU_373 2005-12-04
  • 打赏
  • 举报
回复
风格哪不错了???
把{ 缩进到上面就是不错???
哈哈
yh866 2005-12-04
  • 打赏
  • 举报
回复
为把数字通过窗口打印出来呢,窗口只能打印出字符串呀?
什么函数可以把整型转换为字符串型呢
greenteanet 2005-12-04
  • 打赏
  • 举报
回复
去掉分号就可以啦。
lgh2008 2005-12-03
  • 打赏
  • 举报
回复
import java.util.*;

public class Main {

public static void main(String[] args) {

int no[],no_sum[];
no=new int[48];
no_sum=new int[48];
int intRnd;

for(int i=0;i<48;i++){
no[i]=i;
no_sum[i]=0;
}
for(int i=0;i<5000;i++){
intRnd = (int) (Math.random() * 48) + 1;
no_sum[intRnd-1]++;
}
for(i=0;i<48;i++)
System.out.println ((no[i]+1)+" : "+no_sum[i]+"次");
}
}
TONYBLARED 2005-12-03
  • 打赏
  • 举报
回复
public class Statistic {

public static void main(String[] args) {
HashMap map = new HashMap();
Number number;
for (int i = 0; i < 5000; i++) {
int intKey = (int) (Math.random() * 48) + 1;
Integer key = Integer.valueOf(intKey);
number = (Number) map.get(key);
if (number != null) {
number.count++;
} else {
Number nnn = new Number(key);
map.put(key, nnn);
}
}
Iterator it = map.keySet().iterator();
for (int i = 0; i < map.size(); i++) {
Integer keyy = (Integer) it.next();
Number obj = (Number) map.get(keyy);
System.out.println(keyy + ",个数是:" + obj.count);
}
}
}

class Number {
Integer inte;

int count;

public Number(Integer integer) {
this.inte = integer;
count = 1;
}
}
aofeimx 2005-12-03
  • 打赏
  • 举报
回复
如果结果要用界面输出怎么写才好啊?
cwyaisxp 2005-12-03
  • 打赏
  • 举报
回复
编程风格不错
Trainsp0tting 2005-12-02
  • 打赏
  • 举报
回复
import java.util.*;

public class Test {
public static void main(String[] args) {

int[] no_sum = new int[49];
int i, r1;

Arrays.fill(no_sum, 0);

for(i = 0; i < 5000; i++) {
r1 = (int)(Math.random() * 49);
no_sum[r1]++;
}

for(i = 0; i < 49; i++) {
System.out.println(i + " : " + no_sum[i]);
}
}
}
lang_net 2005-12-02
  • 打赏
  • 举报
回复
隐藏的还挺深,能看出来的是高手,建议要有好的编程风格。
believefym 2005-12-02
  • 打赏
  • 举报
回复
这个有什么好调整的,你要在for外面用到i就必须在外面定义,作用域的问题
aofeimx 2005-12-02
  • 打赏
  • 举报
回复
倒。。。我说的是这样调整:

建议你以后这种i不要在外面定义
写成 for(int i = 0; i < array.length(); i++)
以后就不会有这种错误了,晕死。

believefym 2005-12-02
  • 打赏
  • 举报
回复
去掉分号,调整什么啊
aofeimx 2005-12-02
  • 打赏
  • 举报
回复
是啊,不过我做了他那样的调整之后还是有错误,错误如上。。。恳请帮忙!
pcplayboy 2005-12-02
  • 打赏
  • 举报
回复
for(i=0;i<=48;i++);{
---这里怎么会有个";"呢?
believefym 2005-12-02
  • 打赏
  • 举报
回复
for(i=0;i<=48;i++);{
~~~~
你这个错误也太夸张了吧,这种我试了半天才看出来,晕死
-------------
人家老早都说了,你还晕什么晕
aofeimx 2005-12-02
  • 打赏
  • 举报
回复
到底是怎么回事啊,我真的已经很晕了。。
aofeimx 2005-12-02
  • 打赏
  • 举报
回复
我把i 放在里面定义的时候,下面的两行出现了这样的问题:

F:\JAVA项目\I\产生随机数统计并输出\src\产生随机数统计并输出\Main.java:40: cannot resolve symbol
symbol : variable i
location: class 产生随机数统计并输出.Main
no[i]=i;
F:\JAVA项目\I\产生随机数统计并输出\src\产生随机数统计并输出\Main.java:40: cannot resolve symbol
symbol : variable i
location: class 产生随机数统计并输出.Main
no[i]=i;
F:\JAVA项目\I\产生随机数统计并输出\src\产生随机数统计并输出\Main.java:41: cannot resolve symbol
symbol : variable i
location: class 产生随机数统计并输出.Main
no_sum[i]=0;
3 errors
加载更多回复(4)

62,629

社区成员

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

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