标题:这两段代码的结果为什么会不同?(求三位数的水仙花数)
只看楼主
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
结帖率:33.33%
已结贴  问题点数:10 回复次数:10 
这两段代码的结果为什么会不同?(求三位数的水仙花数)
代码一:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
    int num, yu, shan, sum;
    int i;
    for(num=100; num<=999; num++)
    {
        sum = 0;
        shan = num;
        for(i=1; i<=3; i++)
        {
            yu = shan%10;
            shan = shan/10;
            int mid = pow(yu,3);
            sum = sum + mid;
        }
        if(sum == num)
            printf("%d\n", num);
    }
    return 0;
}


代码二:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
    int num, yu, shan, sum;
    int i, j;
    for(num=100; num<=999; num++)
    {
        sum = 0;
        shan = num;
        for(i=1; i<=3; i++)
        {
            yu = shan%10;
            shan = shan/10;
            int mid=1;
            for(j=0; j<3; j++)
                mid = mid*yu;
            sum = sum + mid;
        }
        if(sum == num)
            printf("%d\n", num);
    }
    return 0;
}
搜索更多相关主题的帖子: include return 水仙花 
2014-02-03 20:41
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
得分:2 
我运行了一下怎么一样。
2014-02-03 21:07
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
得分:2 
确实是一样的,不知楼主是用什么环境运行的。。

。。。。。。。。。。。
2014-02-03 22:16
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
得分:0 
回复 3楼 ljx小子
我在32位xp系统下用CodeBlocks和Dev-C++编译运行都是前一段比后一段少了个153,太玄了吧!
2014-02-03 22:28
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
前一段代码在vs2012下 能够输出4个仙数

DO IT YOURSELF !
2014-02-03 23:05
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
得分:0 
回复 5楼 wp231957
是什么原因,是与pow函数和对应的编译环境有关吗?
2014-02-03 23:08
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
回复 6楼 yanglin_gdqy
其实可以自己写一个pow

请参看  https://bbs.bccn.net/thread-427011-1-1.html

DO IT YOURSELF !
2014-02-03 23:10
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
回复 6楼 yanglin_gdqy
vs2012下 代码略有更改

 int mid = (int)pow((double)yu,3);

DO IT YOURSELF !
2014-02-03 23:11
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
得分:0 
回复 8楼 wp231957
看来我也要下载个vs2010 试试看看,
2014-02-03 23:43
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
得分:0 
回复 9楼 yanglin_gdqy
vs2012
2014-02-03 23:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-427019-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.618098 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved