Сумма натуральных чисел с операторм while в С++

Здесь приведены примеры вычисления суммы натуральных чисел с помощью оператора while. В принципе, вместо двух команд s+=i и i++ можно было использовать одну команду s+=i++, но в данном случае это не принципиально. Алгоритм вы­полнения программы следующий: сначала выводится текстовое сообщение с приглашением ввести число. После ввода пользователем числа проверя­ется неравенство i<=n (переменная i предварительно инициализирована с единичным значением). Если значение переменной i не превышает вве­денного пользователем значения n, выполняются команды оператора цикла (s+=i и i++ соответственно). После этого снова проверяется условие и т.д. до тех пор, пока значение переменной i не превысит значения n. Результат вычисления суммы чисел выводится на экран.
#include 
using namespace std;
int main(){
int n,i=1,s=0;
cout<<"Enter number n=";
cin>>n;
while(i < =n){
 s+=i;
 i++;
}
cout<<"Sum of natural numbers is: " << s << "\n";
return 0;
}
Применение оператора do-while для решения той же задачи приведено в коде ниже.
#include 
using namespace std;
int main(){
int n,i=1,s=0;
cout<<"Enter number n=";
cin>>n;
do{
 s+=i;
 i++;
}while(i <= n);
cout<<"Sum of natural numbers is: " << s << "\n";
return 0;
}
На первый взгляд может показаться, что разницы между двумя программами с циклами while(} и do-while() практически никакой, но одно принципиальное отличие все же есть. Если пользователь введет, напри­мер, отрицательное число (значение переменной n), то первая программа в качестве значения суммы укажет 0, в то время как во втором случае будет выведена 1. Причина в том, что в цикле while() при ложном проверяемом условии команды оператора цикла не выполняются и в качестве значения суммы возвращается начальное нуле­ вое значение переменной s. Во втором случае сначала выполняется один цикл и уже после этого проверяется условие. За этот один выполненный цикл значение переменной s увеличивается на 1, и в результате программой для суммы натуральных чисел возвращается единичное значение.
Онлайн всего: 1
Гостей: 1
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте