Может ли оператор 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

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