| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖
标题:这两段代码的结果为什么会不同?(求三位数的水仙花数)
只看楼主 加入收藏
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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
快速回复:这两段代码的结果为什么会不同?(求三位数的水仙花数)
数据加载中...
 
   



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

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