1

SO私はJavaで配列を扱っています.0〜9の範囲で、長さ100の配列で最小出現数の位置をリストしようとしている問題に遭遇しています。 . 2 番目の配列を使用してオカレンスをカウントしていますが、最後のコードまではすべてうまくいきます。

import java.util.Random;

public class Program6
{
public static void main(String[] args) 
{
    int[] bigArray = new int[100];
    int[] count = new int[10];


    for (int i = 0; i < bigArray.length ;i++ )
        {
            bigArray[i] = (int)(Math.random() * 10);    
        }
    for (int i = 0; i < bigArray.length ;i++ )  
        {   
            System.out.println(bigArray[i] + " ");  
        }
    for(int i = 0; i < bigArray.length; i++)
        {
            count[bigArray[i]]++;
        }



    for (int i = 0, j = 0; i < count.length ;i++, j++)  
            System.out.println("count for " + j +" is: " + count[i] + " "); 

    int min = count[0];
    int indexOfMin = 0;

    for ( int i =1; i < count.length; i++)
        {   if (count[i] < min ) 
                {
                    min = count[i];
                    indexOfMin = i; 
                }
        }

    System.out.println("\nThe number " + indexOfMin + " only appears " + min  + " times in the array.");
    System.out.println("It appears in the large array at: ");

    \\this guy right here 
    for ( int i = 0 ; i < bigArray.length; i++)
        {   if (bigArray[i] == min ) 
                {
                    System.out.println("bigArray["+ i + "]");

                }
        }

}

}

配列の場所をリストするだけです。ただし、修飾子が変数minを使用している場合でも、発生する最小の整数の場所以上のものを返します。

何を与える?私は何が欠けていますか?

入力はありません。返される出力は

8 
 ..
4 
count for 0 is: 18 
count for 1 is: 6 
count for 2 is: 9 
count for 3 is: 9 
count for 4 is: 16 
count for 5 is: 4 
count for 6 is: 12 
count for 7 is: 8 
count for 8 is: 7 
count for 9 is: 11     

The number 5 only appears 4 times in the array.
It appears in the large array at: 
bigArray[3]
bigArray[6]
bigArray[10]
bigArray[23]
bigArray[25]
bigArray[39]
bigArray[44]
bigArray[48]
bigArray[49]
bigArray[50]
bigArray[51]
bigArray[57]
bigArray[58]
bigArray[67]
bigArray[84]
bigArray[99]

bigArray[] リストを除いて、これは完璧です。配列が最小発生数と等しい場合のインデックスのみを表示する必要があります。

4

1 に答える 1

4

あなたは数の数と比較しています。代わりに番号を使用してください。アップデート

//this guy right here 
for ( int i = 0 ; i < bigArray.length; i++)
    {   if (bigArray[i] == min ) 
            {
                System.out.println("bigArray["+ i + "]");

            }
    }

として使用indexOfMinする

`//this guy right here 
for ( int i = 0 ; i < bigArray.length; i++)
    {   if (bigArray[i] == indexOfMin) 
            {
                System.out.println("bigArray["+ i + "]");

            }
    }
于 2012-10-12T21:52:21.600 に答える