Попросите пользователя распечатать количество, которое они хотят c # - PullRequest
0 голосов
/ 03 декабря 2018

У меня небольшая проблема с тем, как я должен логически мыслить для своего кода.Я хочу, чтобы пользователь ввел, сколько чисел они хотят, а затем спросил их, где они хотят, чтобы эта последовательность чисел началась.Тогда я бы распечатал номера.Поэтому, если пользователь набрал 7, а затем 4, результат был бы 4 5 6 7 8 9 10. Вот мой код до сих пор

int userInInt, userIntStart;
Console.Write("How many integers do you want to print? ");
userInInt = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
userIntStart = Int32.Parse(Console.ReadLine());

for(int counts = userIntStart; userIntStart <= userInInt; userIntStart++)
{
    Console.WriteLine(userIntStart);
}

Я понял после выполнения цикла for, что он будет просто увеличиватьсяначальный номер до userInInt, что не то, что я хочу.Я провел некоторое время, пытаясь выяснить, что еще мне нужно.Спасибо

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

Имя, которое вы даете переменным, важно для понимания кода и облегчает его обдумывание.userInInt не отражает назначение переменной.

Console.Write("How many integers do you want to print? ");
int count = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
int start = Int32.Parse(Console.ReadLine());

Часто i используется как переменная цикла, потому что в математике она используется как индекс.У вас есть разные варианты, как вы можете сформулировать цикл.Наиболее типичным является

for (int i = 0; i < count; i++)
{
   Console.WriteLine(start + i);
}

Но вы также можете добавить start к начальному значению переменной цикла и к счетчику.

for (int i = start; i < count + start; i++)
{
   Console.WriteLine(i);
}

Вы можете даже увеличить несколько переменных:

for (int i = 0; i < count; i++, start++)
{
   Console.WriteLine(start);
}
0 голосов
/ 03 декабря 2018

Сначала в вашем коде необходимо использовать правильное имя переменной на шаге приращения (++).Во-вторых, обратите внимание, вам нужно использовать отдельную переменную для отслеживания количества целых чисел.В моем случае я использую переменную «я» для этого.Надеюсь, это поможет.

     int userInInt, userIntStart;
        Console.Write("How many integers do you want to print? ");
        userInInt = Int32.Parse(Console.ReadLine());
        Console.Write("What is the first integer you want printed? ");
        userIntStart = Int32.Parse(Console.ReadLine());
        int i = 0;

        for (int counts = userIntStart; i<userInInt; counts++,i++)
        {
            Console.WriteLine(counts);
        }

        Console.ReadLine();
0 голосов
/ 03 декабря 2018

Измените цикл for, как показано ниже

int userInInt, userIntStart;
Console.Write("How many integers do you want to print? ");
userInInt = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
userIntStart = Int32.Parse(Console.ReadLine());

     for(int counts = userIntStart; counts < userIntStart + userInInt; counts++)
     {
         Console.WriteLine(counts);
     }

Проблема с вашим исходным кодом заключается в том, что ваш цикл for неправильный, сначала вы должны присвоить counts начальное значение, затем вы должны предоставить правильный выходусловие во втором и третьем аргументах - шаг приращения, равный 1, посмотрите for синтаксис цикла здесь .

...