2017-01-18 3 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

Ваш почти там, следующий код расширяет вашу большую попытку. Что касается вопроса о том, как добавить имя в массив с помощью индекса? Вы можете просто использовать переменную i с вашего for-loop.

(я оставил, как вывести значения из двух массивов в желаемом формате в качестве упражнения для вас):

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

да это было невероятно полезно спасибо! –

Смежные вопросы