Есть ли способ сохранить переменную во время цикла while?

#c

#c

Вопрос:

Я использую цикл do-while, который попросит пользователя ввести положительные числа. Программа завершится, когда я введу нулевое (0) число. Затем он вычислит сумму всех введенных мной чисел и отобразит ее.

 #include <iostream>
using namespace std;

int main () {
    
    int end = 0;
    int num1;

        
    do {
        cout << "Enter a number:";
        cin >> num1;
        cout << "n" << endl;

    } while (end != num1); 

    {
        cout << "sum = " << num1 num1;
    }
}
  

Комментарии:

1. Вы всегда перезаписываете num1 — вам нужно использовать какой-то контейнер для хранения всех входных данных (например: a std::vector<int> )

2. Определите другую переменную (скажем sum ) и инициализируйте ее равным нулю перед циклом. В теле цикла (так происходит на каждой итерации цикла) добавьте num1 to sum .

3. сложите числа внутри цикла

4. Для вычисления суммы списка чисел вам не нужно или вы не хотите хранить отдельные числа в некотором массиве или векторе. Вы просто добавляете по ходу.

5. Я исправил это, и я все еще учусь больше. Спасибо за все идеи.

Ответ №1:

это простая программа. вы можете добавить в него код для исключения

 #include <iostream>
using namespace std;

int main() {
  int n=0;
  int sum=0;
  do {
    cin>>n;
    sum =n;
  }while(n); // this loop will break when n=0
  
  cout<<sum;

}
  

Комментарии:

1. Спасибо, теперь я понимаю. Я все еще учусь, и мне не терпится узнать больше

Ответ №2:

Вам нужно указать какую-то sum переменную, которую вы будете увеличивать каждую итерацию на введенное число.

Возможное решение:

 #include <iostream>

int main() {
    int sum = 0;
    // '10' can be changed according to how many numbers you want to input
    for (int i = 0; i < 10; i  ) {
        int temp;
        std::cin >> temp; 
        sum  = temp;
    }
    std::cout << sum << std::endl;
    return 0;
}