首页 > 解决方案 > 为什么没有打印输出?

问题描述

这是一个在用户输入的给定范围内打印 armstrong 数字的程序,但是当执行此程序并输入输入时,不会显示输出。

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

标签: c

解决方案


由于您没有增加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;
 }

推荐阅读