Я новичок в программировании и решал задачу из книги 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