Может ли оператор while не проверять, равны ли два значения, в качестве условия для запуска цикла?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Может ли оператор while не проверять, равны ли два значения, в качестве условия для запуска цикла?

Сообщение Anonymous »

Я новичок в программировании и решал задачу из книги Let Us C. Задача заключалась в том, чтобы написать программу для определения всех чисел Армстронга от 1 до 500, и я сознательно решил использовать «пока» вместо «». if» таким образом столкнулся с этой проблемой. Я уже решил проблему, и мне интересно узнать, почему эта программа запускает бесконечный цикл?

Код: Выделить всё

#include

int main()
{
int n=1,r,an,ns;

while(n0)
{
r=ns%10;
ns=(ns-r)/10;
an=an+(r*r*r);
}

while(an==n)
{
printf("%d is an Armstrong number \n",n);
}

n++;
}
}
Я ожидал, что программа просто напечатает все числа Армстронга в качестве вывода, вместо этого она выдала мне бесконечный цикл, печатающий «1 — это число Армстронга».
Я прошел через программу тщательно, но не мог понять, что именно пошло не так.

Подробнее здесь: https://stackoverflow.com/questions/793 ... or-the-loo
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»