小弟写了一个程序,但是不知道哪里错了,总得不到最后的结果,
各位请帮我挑挑错吧,再写另外一个就不必了!谢谢!public class Main {    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int random[] = new int [100];
        int a[] = new int [10];
        int i,j,k;
        int z=0;        for(i=0;i<100;i++)
            random[i] = (int)(Math.random()*10);        for(j=0;j<10;j++)
            for(k=0;k<10;k++)
            {
                for(i=0;i<100;i++)
                {
                    if(j==random[i])
                    {
                        z++;
                    }                            
                }
                   a[k]=z;
 
                    z=0;
            }
        
        for(k=0;k<10;k++)
            System.out.println(a[k]);    }

解决方案 »

  1.   

    貌似啊,循环体内不可以给数据赋初值的,也就是说,必须在函数外就先赋值,并分配内存,数组之类的因为已经new了,就已经有内存位置了貌似貌似
      

  2.   

    改成这样就可以了:public static void main(String[] args) {
    int random[] = new int [100];
            int a[] = new int [10];
            int i,k;
            int z=0;
            for(i=0;i <100;i++)
                random[i] = (int)(Math.random()*10);
            for(k=0;k <10;k++){
             for(i=0;i <100;i++){
             if(k==random[i]){
             z++;
                    }                           
                }
             a[k] = z;
             z = 0;
            }
            for(k=0;k <10;k++)
             System.out.println(a[k]); 

    }
      

  3.   


    import java.util.*;
    public class Rnd{
        public static void main(String args[]){
          int arr[]=new int[10];
      Random rnd=new Random();
      for(int i=0;i<100;i++){
          int num=rnd.nextInt(100)%10;
      arr[num]++;
      }
      System.out.println(Arrays.toString(arr));
    }
    }
      

  4.   

    是统计0-9出现的次数么?循环多了一层··
       public class Main {    /**
        * @param args the command line arguments
        */
        public static void main(String[] args) {
            int random[] = new int [100];
            int a[] = new int [10];
            int i,k;
            int count=0;        for( i = 0 ;i < 100; i++){
                random[i] = (int)(Math.random()*10);
    }
                                           //这里多了一个for循环
                for( k = 0; k < 10; k++)
                {
                    for(i = 0; i < 100; i++ )  //统计0-9出现的次数
                    {
                        if(k==random[i])
                        {
                            count++;
                        }                           

                    }
                    a[k] = count;               count=0;
                }
           
            for(k = 0; k < 10; k++)
                System.out.println(a[k]);
        }