以下是小弟初学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]+"次");
}
}
可是下面的程序运行的结果却都是 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]+"次");
}
}
~~~~
你这个错误也太夸张了吧,这种我试了半天才看出来,晕死
写成 for(int i = 0; i < array.length(); i++)
以后就不会有这种错误了,晕死。
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
~~~~
你这个错误也太夸张了吧,这种我试了半天才看出来,晕死
-------------
人家老早都说了,你还晕什么晕
---这里怎么会有个";"呢?
写成 for(int i = 0; i < array.length(); i++)
以后就不会有这种错误了,晕死。
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]);
}
}
}
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;
}
}
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]+"次");
}
}
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);
}
}