这是一个在用户输入的给定范围内打印阿姆斯壮编号的程序,但是当执行该程序并输入了输入内容时,不会显示输出。
#include <stdio.h>
int main()
{
int low,high,sum,rem,orig_i;
printf("enter lower and higher numbers : ");
scanf("%d %d",&low,&high);
sum=0;
while(low<high)
{
for(int i=low+1;i<high;i++)
{
while(i!=0)
{
rem=i%10;
orig_i=low+1;
sum=sum+(rem*rem*rem);
if(sum==orig_i)
{
printf("%d",orig_i);
}
i=i/10;
}
}
}
return 0;
}
答案 0 :(得分:0)
由于您没有增加 low ,因此循环无限运行,并且还会出现一些错误。 你可以这样尽管有很多有效的方法来编写此程序,但是我做了一些小的改动只是为了使其工作。
#include <stdio.h>
int main()
{
int low,high,sum,rem,orig_i;
printf("enter lower and higher numbers : ");
scanf("%d%d",&low,&high);
while(low<high)
{
sum=0;
orig_i = low+1;
for(int i=orig_i;i!=0;i=i/10)
{
rem=i%10;
sum=sum+(rem*rem*rem);
}
if(sum==orig_i)
{
printf("%d\n",orig_i);
}
low++;
}
return 0;
}