2017-12-10 8 views
0

7つの整数 "1 2 3 4 2 6 2"を入力すると、正しい出現回数が出力されます。しかし、それは "49 50 51 52 53 54 55"で番号を印刷します...私のコードには何がないか、または正しい番号を印刷するために何を変更する必要がありますか?あなたのコードでこれらの数値の代わりに入力した整数を印刷するにはどうすればよいですか?

for (int i = 0; i < maxEntryCount; i++) { 
    numbers[i][0] = (input.nextInt()); 
} 

あなたが文字として入力を読んでいた。

public static void main(String[] args) 
{ 
    final int maxEntryCount = 7; 
    int [][] numbers = new int [maxEntryCount][2]; 
    System.out.print("Enter " + maxEntryCount + " integers separated by spaces: "); 

    Scanner input = new Scanner(System.in); 

    for (int i = 0; i < maxEntryCount; i++) { 
     numbers[i][0] = (input.next().charAt(0)); 
    } 
    for (int i = 0; i < maxEntryCount; i++) { 
     for (int j = 0; j < maxEntryCount; j++) { 
      if (numbers[i][0] > 0 && numbers [j][0] == numbers[i][0]) { 
       numbers[i][1]++; 
       if (j > i) { 
        numbers[j][0] = 0; 
       } 
      } 
     } 
    } 
    for (int i = 0; i < maxEntryCount; i++) { 
     if (numbers[i][0] > 0) { 
      System.out.println("Number " + numbers[i][0] + " occurs " + (int) numbers[i][1] + " times"); 
      if (numbers[i][0] == 1) { 
       System.out.println("Number " + numbers[i][0] + " occurs " + (int) numbers[i][1] + " time"); 
      } 
     } 
    } 
} 

答えて

3

はちょうどあなたがuser inputになっているあなたのループを変更します。 1と入力すると、1の代わりにASCIIの値が使用されます。
私はそれを入力としてintを取るために使用されるinput.nextInt()に変更しました。

関連する問題