就是要求先产生一组随机数,然后计算每个数字出现的次数。现在我编出了一个很简单的程序,但是不能运行成功。
以下是程序
public class text{
public static void main(String[] args) {
System.out.println("The random array is:");
int[] n=new int [20];
for(int i=0;i<20;i++){
int j = (int) (Math.random()*10);
n[i]=j;
System.out.print(n[i]+" ");
int[] cc = new int[10];
for (int k = 0;k < 5; k++) {
if (n[k]=='0') cc[0]++;
else if (n[k]=='1') cc[1]++;
else if (n[k]=='2') cc[2]++;
else if (n[k]=='3') cc[3]++;
else if (n[k]=='4') cc[4]++;
else if (n[k]=='5') cc[5]++;
else if (n[k]=='6') cc[6]++;
else if (n[k]=='7') cc[7]++;
else if (n[k]=='8') cc[8]++;
else if (n[k]=='9') cc[9]++;
}
for (int m = 0;m < 10; m++) {
System.out.println(cc[m]);
}
}
}
我想的比较简单。
就是先产生一个数组n存放20个随机数
然后再有一个有10个元素的数组cc
通过查n中每一个数字
如果是0,存入cc[0]中,以此类推。
可是我这个程序运行的时候,从cc[0]到cc[9]全部输出为0。
我想知道我这个想法哪里出错了,程序又在哪里出错了。。我之前查到过用Map做的。。但我们要求不能用那个还。。
希望大家可以看看程序然后帮忙说说哪里错了。。另外就是有没有办法把那一串if简写下。。因为如果是100以内的随机数的话。。按我这个方法,需要有100个if。。太繁琐了。。
还请求大家帮忙看看。。谢谢!!!
以下是程序
public class text{
public static void main(String[] args) {
System.out.println("The random array is:");
int[] n=new int [20];
for(int i=0;i<20;i++){
int j = (int) (Math.random()*10);
n[i]=j;
System.out.print(n[i]+" ");
int[] cc = new int[10];
for (int k = 0;k < 5; k++) {
if (n[k]=='0') cc[0]++;
else if (n[k]=='1') cc[1]++;
else if (n[k]=='2') cc[2]++;
else if (n[k]=='3') cc[3]++;
else if (n[k]=='4') cc[4]++;
else if (n[k]=='5') cc[5]++;
else if (n[k]=='6') cc[6]++;
else if (n[k]=='7') cc[7]++;
else if (n[k]=='8') cc[8]++;
else if (n[k]=='9') cc[9]++;
}
for (int m = 0;m < 10; m++) {
System.out.println(cc[m]);
}
}
}
我想的比较简单。
就是先产生一个数组n存放20个随机数
然后再有一个有10个元素的数组cc
通过查n中每一个数字
如果是0,存入cc[0]中,以此类推。
可是我这个程序运行的时候,从cc[0]到cc[9]全部输出为0。
我想知道我这个想法哪里出错了,程序又在哪里出错了。。我之前查到过用Map做的。。但我们要求不能用那个还。。
希望大家可以看看程序然后帮忙说说哪里错了。。另外就是有没有办法把那一串if简写下。。因为如果是100以内的随机数的话。。按我这个方法,需要有100个if。。太繁琐了。。
还请求大家帮忙看看。。谢谢!!!
public class TestArgsWords {
private static final Integer ONE =new Integer(1);
public static void main(String[] args) {
Map m = new HashMap();
for(int i=0; i<args.length; i++) {
Integer freq = (Integer)m.get(args[i]);
m.put(args[i],(freq == null ? ONE : new Integer(freq.intValue()+1)));
}
System.out.println("共探测到" + m.size() + "个数。");
System.out.println(m);
}
}
public static void main(String[] args) {
System.out.println("The random array is:");
int[] n = new int[20]; for (int i = 0; i < 20; i++) {
int j = (int) (Math.random() * 10);
n[i] = j;
System.out.print(n[i] + " ");
}
System.out.println();
int[] cc = new int[10]; for (int k = 0; k < 20; k++) {
if (n[k] == 0)
cc[0]++;
else if (n[k] == 1)
cc[1]++;
else if (n[k] == 2)
cc[2]++;
else if (n[k] == 3)
cc[3]++;
else if (n[k] == 4)
cc[4]++;
else if (n[k] == 5)
cc[5]++;
else if (n[k] == 6)
cc[6]++;
else if (n[k] == 7)
cc[7]++;
else if (n[k] == 8)
cc[8]++;
else if (n[k] == 9)
cc[9]++; }
for (int m = 0; m < 10; m++) {
System.out.println(cc[m]);
}
}
}根据你的思路改了一下主要是int型的 1 和字符型的 '1' 不是一回事,OK?以后问问题时学会插入Java代码,这样会省去很多不必要的麻烦
int j = (int) (Math.random()*10);
n[i]=j;
System.out.print(n[i]+" ");int[] cc = new int[10]; for (int k = 0;k < 5; k++) {
if (n[k]=='0') cc[0]++;
else if (n[k]=='1') cc[1]++;
else if (n[k]=='2') cc[2]++;
else if (n[k]=='3') cc[3]++;
else if (n[k]=='4') cc[4]++;
else if (n[k]=='5') cc[5]++;
else if (n[k]=='6') cc[6]++;
else if (n[k]=='7') cc[7]++;
else if (n[k]=='8') cc[8]++;
else if (n[k]=='9') cc[9]++;
}
==============================
为什么每次产生个随机数,为什么要比较5次,逻辑在哪里?
与0-9之间的数进行比较,不需要单引号!
for(int i=0;i<20;i++){
int j = (int) (Math.random()*10);
n[i]=j;
System.out.print(n[i]+" ");
} int[] cc = new int[10];
if (n[k]==0) cc[0]++;
else if (n[k]==1) cc[1]++;
else if (n[k]==2) cc[2]++;
else if (n[k]==3) cc[3]++;
else if (n[k]==4) cc[4]++;
else if (n[k]==5) cc[5]++;
else if (n[k]==6) cc[6]++;
else if (n[k]==7) cc[7]++;
else if (n[k]==8) cc[8]++;
else if (n[k]==9) cc[9]++;
public class StudentHome {
public static void main(String args[]) {
int[] a = new int[20];
int[] flag = new int[20];
int count = 0;
for(int i = 0; i < flag.length; ++i){
int tmp = (int)(Math.random() * 10);
a[i] = tmp;
flag[i] = 0;//标志数组,当为0时,表示这个数还没有进行判断,否则,则表示这个数已经进行了判断
System.out.print(a[i] + " ");
}
System.out.println();
for(int i = 0; i < a.length; i++) {
if(flag[i] == 0) {
for(int j = 0; j < a.length; j++) {
if(a[i] == a[j] && flag[j] == 0) {
flag[j] = 1;
count++;
}
}
System.out.println(a[i] + "出现了" + count + "次!");
count = 0;
}
}
}
}
这个没有用map