как хранится вход? - PullRequest
       8

как хранится вход?

0 голосов
/ 01 ноября 2018

Я не понимаю, как этот код работает, особенно после ввода в набор целых чисел. например, как вход будет сохранен и затем сравнен, чтобы найти самый большой среди набора?

#include <iostream>

using namespace std;

int main()
{
   int n, num, max, k=1;
   cout << " Enter how many integers " << endl;
   cin >> n;

   cout << " enter " << n << " integers: "; // where input be stored
   cin >> max; // this will input the last number right?
   // if i entered 50 55 60 where they will be stored dont i need to store them in in 3 seprate places
   while (k<n)
   { 
      cin >> num; // what is the function of this line? from where the input will be 
      if (num > max)
          max = num;
      k++;
   }
   cout << " largest integer is :" << max << endl;

   return 0;
}

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Давайте пройдемся по этому. Давайте рассмотрим случай, когда пользователь выбирает n >= 1. (обратите внимание также k = 1). Сначала нам нужно, чтобы пользователь ввел один номер.

cin >> max;

Мы говорим, что это число максимальное, мы не знаем, правда это или нет, но мы делаем это предположение.

Затем мы читаем целые числа, в то время как k < n истинно.

while (k < n)
{ 
    cin >> num;
    if (num > max)
        max = num;
    k++;
}

Итак, мы читаем число в num (которое мы объявили вне цикла while). Затем мы проверяем, больше ли это число, чем наше предположение о том, что первое число было наибольшим, если мы переназначаем max на num. Затем мы увеличиваем k.

Мы будем делать это, пока не прочитаем n целых чисел. В результате max становится наибольшим числом, которое мы ввели.

Что касается хранилища, нам не нужно ничего хранить, в рамках цикла while мы можем проверить, больше ли число, чем макс, или нет, если это не было, мы просто отбрасываем его следующим итерации.

0 голосов
/ 01 ноября 2018

Постановка задачи этой программы будет такой: Вам дано n целых чисел. Теперь вам нужно вывести наибольшее целое число среди всех этих целых чисел.

  • cin >> max примет только одно целое число. max будет содержать значение.
  • cout << " enter " << n << " integers: "; напечатает этот вывод в консоли. Например, если значение n равно 2, будет напечатано: enter 2 integers:

Подробности смотрите в комментарии:

#include <iostream>

using namespace std;

int main() {
int n, num, max, k = 1;
cout << " Enter how many integers " << endl; // print
cin >> n; // number of integer to input;

cout << " enter " << n << " integers: ";  // print how many integers to enter as input

cin >> max;  // input for 1st integer, assume it is the maximum integer

// this while loop will take input of the remaining n-1 intergers
// initially k=1, while loop will run until k is less than n
// while loop will run for n-1 times
while (k < n) {
    cin >> num;  // input for 1 integer
    if (num > max) max = num; // if this input integer 'num' is greater than 'max', then update 'max'
    k++; // increment 'k'
}

cout << " largest integer is :" << max << endl; // print the largest integer

return 0;
}
0 голосов
/ 01 ноября 2018

Не хранится весь прочитанный набор чисел.

Сравнивает каждый новый введенный с текущим максимумом. Начальное максимальное значение устанавливается на первое прочитанное число.

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