Запросить определенное количество входов на основе целочисленного ввода - PullRequest
0 голосов
/ 06 февраля 2020

Я действительно даже не знаю, как правильно задать этот вопрос, но мне назначено задание, которое просит меня попросить пользователя ввести информацию (в данном случае это число овец). Затем, после того как они введут число, скажем, 5, я должен попросить пользователя назначить значение координат x и y на основе того целого числа, которое они вводят. Моя текущая теория состоит в том, чтобы сохранить исходное число в массиве и затем каким-то образом спросить пользователя, сколько координат (или набор из 2 чисел) основано на их значении.

На самом деле я понятия не имею, с чего начать, но я пока приложу свой код.

private int x, y;

public static void main(String[] args) {
    Scanner sheepScanner = new Scanner(System.in); //Allows for user input
    System.out.println("Enter a number of Sheep"); //Asks user for input


    int numSheep = sheepScanner.nextInt(); //reads in number of sheep and stores it in variable numSheep
    int totalSheep[] = new int[numSheep]; //creates an array called totalSheep based on numSheep
    //System.out.println(totalSheep);
        for (int i = 1; i < totalSheep.length; i++) {
            totalSheep[i]=Integer.parseInt(); //literally no idea what's going here

Ответы [ 3 ]

0 голосов
/ 06 февраля 2020

используйте это в последней строке

totalSheep[i]=i;
0 голосов
/ 06 февраля 2020

Итак, если я правильно понял, что вы пытаетесь сделать, это в основном попросить пользователя указать количество овец, а затем для каждого из овец запросить координаты x и y (этой овцы?).

Итак, первое, что вы делаете, это запрашиваете количество овец и сохраняете его в numSheep, это выглядит хорошо.

Затем вы создаете массив. Что вам действительно нужно, так это, вероятно, двумерный массив, подобный

int[][] coordinates = new int[sheepNum][2];

. Таким образом, это будет массив, содержащий 5 массивов, каждый из которых имеет длину 2. Это будут координаты (x, y), так как много, как пользователь ввел. Если пользователь ввел 5, этот массив будет содержать 5 наборов (x, y) координат.

Затем вы начинаете свой l oop с 0 до длины этого массива, это тоже хорошо.

for (int i = 1; i < coordinates.length; i++) { ... }

Обратите внимание, что coordinates.length это просто sheepNum, потому что массив содержит sheepNum элементов (xy-пар).

Внутри этого l oop имеется переменная i, которая работает от 0 до sheepNum и является своего рода числом текущая овца.

И так после всего, что вам нужно сделать внутри этого l oop, это заполнить массив.

Итак, прочитайте еще два целых числа (x и y числа овец i)

и сохранить эти значения в coordinate[i][0] и coordinate[i][1].

Done:)

0 голосов
/ 06 февраля 2020

основываясь на том, что я понял. Что вам нужно сделать, это просто взять данные от пользователя и сохранить их в векторе / массиве. Затем на основе введенного значения просто запустите al oop и добавьте его на карту.

HashMap<Integer,String> map= new HashMap<>();

Затем выполните a для l oop до числа, т.е.

for(int i=0;i<numberOfSheep;i++)
{
double x-Cordinate="";//store your values here
double y-Cordinate="";//store your values here
String co-ordinates= x-Cordinate +","+y-Cordinate;
map.put(i,co-ordinates);
}

Теперь у вас будет карта с координатами и номером овцы. Вы можете получить ключ и значения из него. Например, если вы хотите, чтобы координаты овец № 5 были на карте, вы можете использовать. map.get(sheepNumber). Если вы хотите отделить значения от кординатов, используйте split(",") Надеюсь, я ответил на то, что вы искали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...