为什么不打印输出?

时间:2020-03-26 08:41:40

标签: c

这是一个在用户输入的给定范围内打印阿姆斯壮编号的程序,但是当执行该程序并输入了输入内容时,不会显示输出。

#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;
 }

1 个答案:

答案 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;
 }