Не могу выписать первое значение индексатора - PullRequest
0 голосов
/ 23 октября 2018

Я должен написать код, в котором пользователь может дать программе количество индексов, а затем дать каждому из них значения.Проблема в том, что когда я пытаюсь записать значения, первое значение не записывается, и оно также запрашивает одно дополнительное значение.Таким образом, в основном, если вы хотите иметь 5 индексов, программа попросит вас указать 6 значений, а первое не будет записано.Что я здесь не так делаю?Мне по-прежнему нужна переменная «значение», потому что позже я должен использовать ее в выражении else-if.

static void Main(string[] args)
{
    int amount;
    int value;

    Console.WriteLine("Amount: ");
    amount = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("values: ");
    value = Convert.ToInt32(Console.ReadLine());

    int[] tomb = new int[amount];
    for (int i = 0; i < amount; i++)
    {
        tomb[i] = Convert.ToInt32(Console.ReadLine());
    }
    Console.WriteLine(".....");
    for (int i = 0; i < amount; i++)
    {
        Console.WriteLine(tomb[i]);
    }
    Console.ReadKey();
}

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Эти две строки:

Console.WriteLine("values: ");
value = Convert.ToInt32(Console.ReadLine());

прочитайте value и сохраните его.Это первый номер, который вы прочитали.Затем внутри цикла вы читаете amount значения и сохраняете их в массиве tomb.Это остальные цифры.Затем во втором цикле вы записываете amount значения из массива tomb.Вы никогда не пишете этот первый введенный номер из value.

Итак, вы читаете amount + 1 цифры и пишете только последние amount цифры

0 голосов
/ 23 октября 2018

Первое / дополнительное пользовательское значение вводится в переменную 'value'.Эта переменная никогда не используется / не отображается.Просто удалите строку value = Convert.ToInt32(Console.ReadLine());.

Редактировать:

static void Main(string[] args)
{
    int amount;
    int value;

    Console.WriteLine("Amount: ");
    amount = Convert.ToInt32(Console.ReadLine());

    Console.WriteLine("values: ");        
    int[] tomb = new int[amount];
    for (int i = 0; i < amount; i++)
    {
        tomb[i] = Convert.ToInt32(Console.ReadLine());
    }
    int value = tomb[0]; //Get the first user input value

    Console.WriteLine(".....");
    for (int i = 0; i < amount; i++)
    {
        Console.WriteLine(tomb[i]);
    }
    Console.ReadKey();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...