标题:下面程序哪个地方错了?
只看楼主
jiawan007
Rank: 1
等 级:新手上路
帖 子:45
专家分:2
注 册:2009-8-1
结帖率:90.91%
已结贴  问题点数:16 回复次数:12 
下面程序哪个地方错了?
求1-10000之间所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是1*1*1+5*5*5+3*3*3=153。
我写的程序是:
#include<stdio.h>
int main(void)
{
    int a=0,b=0,c=0,d=0,i;
    for(i=1;i<=10000;i++){
        if(a*a*a==a) i=a;
        else if(a*a*a+b*b*b==10*a+b) i=10*a+b;
        else if(a*a*a+b*b*b+c*c*c==100*a+10*b+c) i=100*a+10*b+c;
        else if(a*a*a+b*b*b+c*c*c+d*d*d==1000*a+100*b+10*c+d) i=1000*a+100*b+10*c+d;
    }
    printf("%d",i);
    return 0;
}
编译可以通过,但却无法运行。
帮忙看一下。


搜索更多相关主题的帖子: 立方 void include return 
2009-11-05 16:39
chinagdvea
Rank: 2
等 级:论坛游民
帖 子:38
专家分:10
注 册:2009-11-5
得分:3 
水仙花数吧?
不知道楼主写的是什么,但应该用取整来取出各位数字吧
如 n=153
百位 a=n/100
十位 b=n/10-n%100/10
各位 c=n%10
然后 a*a*a+b*b*b+c*c*c==n

It's not a joke
2009-11-05 16:45
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:2 
因为LZ的代码写的很**** ,而且构成死循环,所以没结果输出来,不是不能运行···再想想写写··,按LS的思路···
2009-11-05 16:51
rib
Rank: 4
等 级:业余侠客
帖 子:95
专家分:252
注 册:2009-3-30
得分:2 
LZ   你看看   a=0,b=0,c=0    考虑下后面         你的a b  c  还赋植了吗    一直是 0


int a,b,c,d,n;
 千位   a=n/1000
 百位  b=n/100-n/1000*10;
 十位   c=n/10-n/100*10;
  个位     d=n%10;

[ 本帖最后由 rib 于 2009-11-5 17:18 编辑 ]
2009-11-05 17:06
jian3000
Rank: 1
等 级:新手上路
帖 子:11
专家分:9
注 册:2009-10-27
得分:3 
#include "stdio.h"
#include "conio.h"
main()
{
  int i,j,k,q,n;
  printf("number is:");
  for(n=1;n<10000;n++)
  { q=n/1000;
    i=n/100%10;
    j=n/10%10;
    k=n%10;
    if(q*1000+i*100+j*10+k==q*q*q+i*i*i+j*j*j+k*k*k)
      printf("%d ",n);
  }
  getch();
}

[ 本帖最后由 jian3000 于 2009-11-5 17:29 编辑 ]
2009-11-05 17:25
曼珠沙华
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:121
专家分:98
注 册:2009-5-21
得分:1 
用数学函数pow(x,y),计算x的y次幂
这样,程序看起来会简洁很多
#include<math.h>

走过了,却留下了痕迹。伤过了,却是一种无奈。人生只不过是一种擦肩而过的过程。
2009-11-05 17:56
雪鹰独行
Rank: 2
等 级:论坛游民
帖 子:40
专家分:10
注 册:2009-7-18
得分:0 
赞成5楼的写法,
2009-11-07 11:57
雪鹰独行
Rank: 2
等 级:论坛游民
帖 子:40
专家分:10
注 册:2009-7-18
得分:0 
回复 5楼 jian3000
问一下,最后这个getch()的作用是什么,前边不是已经有printf了吗
2009-11-07 11:59
hnliji1107
Rank: 4
等 级:业余侠客
帖 子:53
专家分:216
注 册:2009-10-23
得分:5 
#include<stdio.h>
int main(void)
{
    int a,b,c,d,i;/*首先简单判断10000不符合条件,剔除,所以定义5个变量*/
    for(i=1;i<=10000;i++)
    {
        a=i/1000;/*千位*/
        b=i%1000/100;/*百位*/
        c=i%100/10;/*十位*/
        d=i%10;/*个位*/
        if(i==a*a*a+b*b*b+c*c*c+d*d*d)
            printf("%5d",i);
    }
    putchar('\n');
    return 0;
}
2009-11-07 12:23
雪鹰独行
Rank: 2
等 级:论坛游民
帖 子:40
专家分:10
注 册:2009-7-18
得分:0 
你这个a,b,c,d全是0 啊
2009-11-07 12:27



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




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

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