Итак, я попытался запустить ваш код и получил следующий вывод:
Amstrong no from 100 to 10000 are
v
v
v
371
Итак, выводится 371
.Проблема в том, что переменные n
и result
должны быть сброшены в конце цикла, поэтому у вас есть:
#include<stdio.h>
#include<math.h>
void main()
{
int orignal,rem,no,result=0,n=0,i;
printf("Amstrong no from 100 to 10000 are\nv\nv\nv\n");
for(i=371;i<=1000;i++)
{
orignal=i;
while(orignal!=0)
{
orignal/=10;
++n;
}
orignal=i;
while(orignal!=0)
{
rem=orignal%10;
result+=pow(rem,n);
orignal/=10;
}
if(result==i)
printf("%d\n",i);
n=0;
result = 0;
}
}
И окончательный вывод, который также является правильным:
Amstrong no from 100 to 10000 are
v
v
v
371
407