现在我便出了一个小程序:
public   class   Histogram{   public static void main(String[] args) {    
System.out.println("The random array is:(100 integers)");   
int[] number=new int [50];          for(int i=0;i<50;i++)                 
{
int j = (int) (Math.random()*11+50);
number[i]=j;
System.out.print(number[i]+" ");
if((i+1)%50==0)    System.out.println();
}
         System.out.println();

String str="";                         
for(int i=0;i<number.length;i++) { 
str=str + (number[i]-5)  ; 


int[] Integer = new int[11];              
for (int i = 0; i < 50; i++) {
char ch = Character.toLowerCase(str.charAt(i));     
if ((ch)>='0'&&(ch)<='9') Integer[ch - '0']++;       

 
for(int l=0;l<11;l++)              {
System.out.print(" [ "+(l+50)+" ] : "); 
System.out.println("  "+Integer[l]);}
}
}  
因为if ((ch)>='0'&&(ch)<='9') Integer[ch - '0']++这个的限制,
所以输出的结果为:
 [ 50 ] :   2
 [ 51 ] :   1
 [ 52 ] :   2
 [ 53 ] :   2
 [ 54 ] :   15
 [ 55 ] :   17
 [ 56 ] :   2
 [ 57 ] :   2
 [ 58 ] :   2
 [ 59 ] :   5
 [ 60 ] :   0
而实际上,60这个数字是有随机产生出来的。。
我想问下大家应该怎么改程序才能让 [ 60 ] :   0这个数也开始计数呢??

解决方案 »

  1.   

    你原先的程序有问题,11个选项,而数字是从0-9,10会分为1和0,所以60的统计结果自然为0
    public class Histogram{ public static void main(String[] args) { 
    System.out.println("The random array is:(100 integers)"); 
    int[] num=new int [50]; 

    for(int i=0;i<50;i++) 
    {
    int j = (int) (Math.random()*11+50);
    num[i]=j;
    System.out.print(num[i]+" "); 
    if((i+1)%50==0) System.out.println();
    }
    System.out.println();

    //String str=""; 
    //for(int i=0;i<num.length;i++) { 
    //str=str + (num[i]-50) ; 
    //} 

    int[] Integer = new int[11]; 
    for (int i = 0; i < 50; i++) {
    //char ch = Character.toLowerCase(str.charAt(i)); 
    //if ((ch)>='0'&&(ch)<='9') Integer[ch - '0']++; 
    Integer[num[i] - 50]++;


    for(int l=0;l<11;l++) {
    System.out.print(" [ "+(l+50)+" ] : "); 
    System.out.println(" "+Integer[l]);}