Cat_5E0 2023-11-24 14:46 采纳率: 100%
浏览 6
已结题

编写一个输出21位的水仙花数的程序时,是什么原因呢(标签-C语言|关键词-#include)(相关搜索:c语言)

编写一个输出21位的水仙花数的C语言程序时,程序能正常运行,但是没有任何结果输出,是什么原因呢


#include <stdio.h>
#include <math.h>
#define N 21

int main()
{
    int n,i,j,sum = 0;
    int s = pow(10,N);
    for(n = s;n < s*10;n++)
    {
        sum = 0;
        j = 0;
        for(i = s;i >= 1;i /= 10)
        {
            j = n/i - j*10;
            sum += j*j*j;
        }
        if(sum == n)
        {
        printf("%d",n);
        }
    }

    return 0;
}

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-11-24 15:09
    关注

    10^21 远超 int 型数据范围,溢出错误,得不到正确的结果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography