Как сохранить пользовательские входы в цикле while в C ++ - PullRequest
0 голосов
/ 29 октября 2019

Пользователь введет список номеров. Пользователь должен ввести столько цифр, сколько пожелает пользователь. Все числа должны храниться в переменной, я не пытаюсь сложить их все.

#include <iostream>

using namespace std;
int main()
{
   // declare variables
   double number,listOfNumbers; 
   bool condition;

   cout << "Enter a starting number: ";
   cin >> number;

   condition = true;

   while (condition)
   {
      if(number > 0)
      {
         cout << "Enter another number (type 0 to quit): ";
         listOfNumbers = number;
         cin>>listOfNumbers;
      }
      else
      {
         condition=false; 
      }
   }
   cout << listOfNumbers;
   return 0;
}

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Некоторые небольшие модификации и использование std::list или std::vector для хранения значений, вектор будет динамически расти по мере того, как вы будете запускать программу и перемещать, если ей не хватит места, список будет выделять место для каждого новогоЗдесь оба элемента работают.

Я также никогда не использую using namespace std, хотя это часто встречается в уроках.

Синтаксис auto const &i в последнем цикле for требует некоторых более поздних стандартов C ++это даст вам неизменную ссылку на предмет.

#include <iostream>
#include <list>

int main() {
  // declare variables
  double number;
  std::list<double> listOfNumbers;
  bool condition;

  std::cout << "Enter a starting number: ";
  std::cin >> number;

  condition = true;

  while (condition) {
    if (number > 0) {
      listOfNumbers.push_back(number);
      std::cout << "Enter another number (type 0 to quit): ";
      std::cin >> number;
    } else {
      condition = false;
    }
  }

  for (auto const &i : listOfNumbers) {
    std::cout << i << std::endl;
  }
  return 0;
}
0 голосов
/ 29 октября 2019

Используйте std:vector для хранения чисел, например:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
   // declare variables
   double number;
   vector<double> listOfNumbers; 

   cout << "Enter numbers (type 0 to quit): ";
   while ((cin >> number) && (number != 0))
   {
      listOfNumbers.push_back(number);
   }

   for(number : listOfNumbers)
      cout << number << ' ';

   return 0;
}
...