2017-01-18 25 views
-2

私は、ユーザーにゲームプレイヤーの数、ゲームプレイヤーの名前、スコアを入力し、スコアの降順でスコアを印刷するように促すプログラムを作成しようとしています。ループを使用して名前を配列に保存するにはどうすればよいですか?

名前とスコアの配列を使用する必要があります。残念ながら、これは私が持っているすべてです。

サンプル出力

Enter the number of players: n 
Enter the name of the player: Ash 
Enter the player's score: 1200 
Enter the name of the player: Brock 
Enter the player's score: 900 
Enter the name of the player: Misty 
Enter the player's score: 1300 
Misty  1300.0 
Ash  1200.0 
Brock  900.0 

import java. util.*; 


public class HomeworkAssignment12 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter the number of game players: "); 
     int numOfPlayers = input.nextInt(); 
     String[] names = new String[numOfPlayers]; 
     double[] scores = new double[numOfPlayers]; 

     //Trying to store the names the user inputs into the names[] array 
     for (int i = 0; i < names.length; i++) { 
      int index = i; 
      System.out.println("Enter a game players name: "); 
      names[index] = input.nextLine(); 
      System.out.println("Enter the player's score: "); 
      scores[index] = input.nextDouble(); 

      //used to check what the loop is doing each iteration 
      System.out.println(i); 

     }//end for 

    }//end main 

}//end class 
+6

「残念ながら、これは私が持っているすべてです」だから、これはどうしますか?それはどうしますか?何をやったの? –

+0

もっとお試しください。あなたが正しい道にいるように見えます。そのforループ内では、プレイヤーのスコアを入力して配列に格納するように依頼する必要があります。難しい部分は、配列をソートし、配列のインデックスをまとめて保持することです。がんばろう! – Sedrick

+0

ヒント: 'input.nextDouble()' –

答えて

0

あなたのほとんどが、次のコードは、あなたの偉大な試みを拡張したものです。インデックスを使用して配列に名前を追加する方法についてのあなたの質問は? for-loopの変数iをそのまま使用することができます。

(私はあなたのためのエクササイズとして、ご希望のフォーマットで二つの配列から値を印刷する方法取り残されている):

import java.util.Scanner; 
import java.util.Arrays; 

class Main { 
    public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 

    System.out.print("Enter the number of game players: "); 
    int numOfPlayers = scanner.nextInt(); 
    String[] names = new String[numOfPlayers]; 
    double[] scores = new double[numOfPlayers]; 

    for (int i=0; i<names.length; i++){ 
     System.out.print("Enter a players name: "); 
     String name = scanner.next(); 
     names[i] = name; 
     System.out.print("Enter " + name +"\'s score: "); 
     while(scanner.hasNext()) { 
     if(scanner.hasNextDouble()) { 
      double score = scanner.nextDouble(); 
      scores[i] = score; 
      break; 
     } else { 
      System.out.println("ERROR: Invalid Input"); 
      System.out.print("Enter " + name +"\'s score: "); 
      scanner.next(); 
     } 
     } 
    } 
    System.out.println("The names array: " + Arrays.toString(names)); 
    System.out.println("The scores array: " + Arrays.toString(scores)); 
    } 
} 

Exampe用途:

Enter the number of game players: 2 
Enter a players name: Max 
Enter Max's score: 3 
Enter a players name: John 
Enter John's score: 6 
The names array: [Max, John] 
The scores array: [3.0, 6.0] 

試してみてくださいhere!

+0

はいこれは信じられないほど有益でした! –

関連する問題