| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1158 人关注过本帖
标题:一个水仙花函数求找错!
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:11 
一个水仙花函数求找错!
我的意图是求1到n内的所有水仙花数。水仙花数是一个n位数每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
#include <stdio.h>
#include <math.h>
int shx();
int main( )
{
    int  i;
    int  n;
    scanf("%d", &n);
    for(i = 1; i <= n; i++)
    {
        if( shx(i) )
        printf("%d  ", i);
    }
}
shx( int n )
{   
    int  a, b,c;
    int  m = 0, k = 0;
    b = n;
    c = n;
    while(b != 0)
    {
        b = b / 10;
        m++;
    } // 确定n是几位数.
    while(c != 0)
    {   
        a = (c % 10);
        k += pow(a, m);
    c = c / 10;
    }
    if(k == n)
        return 1;
    else
        return 0;
}
编译出好些错 ,偶改不来了,大家帮忙看下 。
搜索更多相关主题的帖子: include 水仙花 
2011-11-27 00:14
zy_space
Rank: 5Rank: 5
等 级:职业侠客
帖 子:163
专家分:364
注 册:2011-11-14
收藏
得分:2 
#include<stdio.h>

int main(void)
{
   int   i, a, b, c, k;

   for (i = 100; i < 1000; i++) {
      a = i / 100;
      b = i / 10 % 10;
      c = i % 10;
      k = a * a * a + b * b * b + c * c * c;
      if (i == k)
         printf("%6d\n", i);
   }
   getchar();
   return 0;
}

何必等待?梦在今朝
2011-11-27 00:36
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:10 
其实你这个写的挺好的,就是定义函数的时候少了个类型,后面的定义变量的时候一个逗号用了中文符号,其他都是正确的
程序代码:
#include <stdio.h>
#include <math.h>
int shx();
int main( )
{
    int  i;
    int  n;
    scanf("%d", &n);
    for(i = 1; i <= n; i++)
    {
        if( shx(i) )
        printf("%d  ", i);
    }
}
int shx( int n ) //这里少了个函数返回类型
{   
    int  a, b,c;      //这里b和c之间的逗号错误,改成英文的逗号就ok了
    int  m = 0, k = 0;
    b = n;
    c = n;
    while(b != 0)
    {
        b = b / 10;
        m++;
    } // 确定n是几位数.
    while(c != 0)
    {   
        a = (c % 10);
        k += pow(a, m);
    c = c / 10;
    }
    if(k == n)
        return 1;
    else 
        return 0;
}
2011-11-27 01:45
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 zy_space
谢谢 你给的是个特例!

梅尚程荀
马谭杨奚







                                                       
2011-11-27 09:25
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 luchar
很感谢你。我看到编译出那么多error 那叫个汗啊,就是找不到错。问下为什么一定要在子函数前加类型呢?还有那个中文逗号你是怎么发现的,下次还有这种情况我怎么去找啊。

梅尚程荀
马谭杨奚







                                                       
2011-11-27 09:28
编程的乐趣
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:229
专家分:1027
注 册:2011-4-4
收藏
得分:2 
为了规范,一般是要加的,但不加自动默认为是int类型
2011-11-27 09:37
mfh
Rank: 6Rank: 6
等 级:侠之大者
帖 子:179
专家分:411
注 册:2009-5-31
收藏
得分:1 
“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

2011-11-27 09:46
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 7楼 mfh
百度解释是N位数,每个位数的N次幂相加等于他本身就称水仙花数。

梅尚程荀
马谭杨奚







                                                       
2011-11-27 09:58
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
收藏
得分:1 
shx(int n)没有指定返回值类型
2011-11-27 11:24
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:4 
回复 5楼 有容就大
问下为什么一定要在子函数前加类型呢?还有那个中文逗号你是怎么发现的
========================
那个叫函数返回类型,看看函数那章就明白了
多写写,看编译错误提示,然后看仔细点,就会发现这个逗号和其他逗号不一样的。
2011-11-27 11:34
快速回复:一个水仙花函数求找错!
数据加载中...
 
   



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

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