c - c中的while循环无限期地进行

标签 c while-loop

<分区>

当我编译并运行这段代码时,while 循环并没有停止。我哪里做错了?

/*Program to find all armstrong numbers between 1 and 500*/
#include <stdio.h>
int main()
{
int i,rem_t,rem_h,dig_u,dig_t,dig_h;
i=1;
    while(i<=500)
    {
    rem_t=i%100;
    rem_h=i%1000;
    dig_u=i%10;
    dig_t=(rem_t-dig_u)/10;
    dig_h=(rem_h-rem_t)/100;
    if (i=(dig_u*dig_u*dig_u)+(dig_t*dig_t*dig_t)+(dig_h*dig_h*dig_h))
        {
        printf("%d\n",i);
        }
    }
}

最佳答案

你犯了两个错误:

  • 您在 if 语句中使用 = 代替了 ==,并且
  • 您没有在循环体末尾递增 i

编译器会警告您第二个问题,但第一个“隐藏”它。

if (i==(dig_u*dig_u*dig_u)+(dig_t*dig_t*dig_t)+(dig_h*dig_h*dig_h))
    {
    printf("%d\n",i);
    }
i++;

Demo.

关于c - c中的while循环无限期地进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222102/

相关文章:

c - 可变长度霍夫曼码的比特流 - 如何写入文件?

c - 我如何将函数指针传递给函数。

c - 复制指针时出现段错误

c - 释放堆、特殊树上的内存

php - 在页面的不同部分显示 MySQL 结果

自定义内核不读取全局变量和 char*

vb6 - 在条件 vb6 时执行

c++ - while 循环不终止?

scripting - PHP脚本任意停止运行没有错误

objective-c - 更新 "while loop"中的 UILabel