You will develop a program to count the number of times each number in the range is generated. Your program will generate 100 numbers in the range [0, 9] and you will print a histogram similar to the histogram shown below.方法/乱数の印刷ヒストグラム
0 ********
1 ***********
2 ******
3 ****************
4 **************
5 *****
6 ************
7 ***********
8 ********
9 *********
To print the histogram shown above, your program must record the number of times each number is generated.
私はNUMを渡し、印刷方法にカウントして、アスタリスクとしてそれを印刷するにはswitch文を通してそれを渡すようにしようとしています。それは私にエラーを与えている。助言?
ここで私が取得していますエラーです:
ここrequired: int,int found: no arguments reason: actual and formal argument lists differ in length /tmp/java_9JsuaS/RandomSrv.java:55: error: method print in class RandomSrv cannot be applied to given types; System.out.print("9 " + this.print()); ^
import java.util.Random;
public class RandomSrv
{
public void genNums(int total)
{
for(int counter = 0; counter < total; counter++) //counter for the random gen nums//
{
int UPPER_BOUND = 10;//max number it will go to: 9
int count0 = 0; //stores counter//
int count1 = 0;
int count2 = 0;
int count3 = 0;
int count4 = 0;
int count5 = 0;
int count6 = 0;
int count7 = 0;
int count8 = 0;
int count9 = 0;
int count = 0;
Random randObj = new Random(); //creating randoms object//
int num = randObj.nextInt(UPPER_BOUND);//num ranges 1-10//
print(num, count);
switch (num) //counts it into catagories//
{
case 0: count = count0++;
System.out.print("0 " + this.print());
break;
case 1: count = count1++;
System.out.print("1 " + this.print());
break;
case 2: count = count2++;
System.out.print("2 " + this.print());
break;
case 3: count = count3++;
System.out.print("3 " + this.print());
break;
case 4: count = count4++;
System.out.print("4 " + this.print());
break;
case 5: count = count5++;
System.out.print("5 " + this.print());
break;
case 6: count = count6++;
System.out.print("6 " + this.print());
break;
case 7: count = count7++;
System.out.print("7 " + this.print());
break;
case 8: count = count8++;
System.out.print("8 " + this.print());
break;
case 9: count = count9++;
System.out.print("9 " + this.print());
break;
}
}
}
public void print(int num, int count) //converting them to astericks//
{
for(int x = 0; x < count; x++)
{
System.out.println("*");
}
}
}
コードが長すぎると、所望の問題にcomplicaedあります。私はint [10](0から9まで)のようなArrayを考えてみることをお勧めします。配列の各位置はその値を参照します:array [i ++] 1。最後の印刷は、その配列を実行することによって行われます。 – Rotem
数字の生成方法は教えていません。 [毎回4回生成する](https://xkcd.com/221/)して、100個のアスタリスクを連続して印刷できます。 – jsheeran