c - c中的阿姆斯特朗数程序输出错误

标签 c

输出仅为 0 和 1。

int main()
{
int i, n=0, rem, sum=0, temp;

for(i=0; i<1000; i++) {
  temp = n;

  while(temp>0){
      rem = temp%10;
      sum += rem*rem*rem;
      temp /= 10;
  }

  if (sum == i){
    printf("%d ", i);
  }
  n++;
}

最佳答案

对于每个值总和必须为零,这是第一次校正。并且 i 必须分配给变量 temp,因为必须检查 i 值是否是阿姆斯特朗数。进行更改它将起作用。

#include<stdio.h>
int main()
 {
   int i, rem, sum=0, temp;
   for(i=0; i<1000; i++) 
    {
        temp = i;
        sum=0;
        while(temp>0)
         {
             rem = temp%10;
             sum += rem*rem*rem;
             temp /= 10;
          }

       if (sum == i)
          {
             printf("\n%d ", i);
           }

}

输出 0
1
153
370
371
第407章

关于c - c中的阿姆斯特朗数程序输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48316792/

相关文章:

c - 启用 linux 服务以显示弹出窗口

c - _tcstok (strtok) 跳转到 token 上?

c - 如何将字符数组的多个元素转换为整数?

c - 如何判断哪个用户启动了这个程序?

c - 这个addfront()函数与nalloc()一起用于链表是错误的吗?

c - 应该调用什么函数 f() 来产生不同的东西?

c - 在传统的 Linux fork-exec 中使用 _exit() 和 exit() 有什么区别?

我们可以将预处理器指令视为 token 吗?

c - 写入二进制文件

c - 在 C 中打印一个三角形