注册 登录
编程论坛 C++教室

求“水仙花”数,哪里错了?

chenghang 发布于 2012-10-27 16:26, 611 次点击
#include<stdio.h>
void main()
{
    int a=100,s=0,b,m=100,t,r,i=0;
    while(a<=999)
    {
        while(a!=0)
        {
            b=a%10;
            a=a/10;
            s=s+b*b*b;
        }
        {    if(s==m)  printf("这个“水仙花”数为%d\n",m);
            else printf("%d不是“水仙花”数",m);
            ++m;
            r=(t=m);
            a=t;
               m=r;
        }
    }
}
12 回复
#2
zxd5432012-10-27 17:26
#include <stdio.h>
int main()
{
    int i,a,b,c;
    printf("100--999的水仙花数为:\n");
    for(i=100;i<=999;i++)
    {
        a=i%10;//获取个位数
        b=(i/10)%10;//获取十位数
        c=i/100;//获取百位数
        if(a*a*a+b*b*b+c*c*c==i)
            printf("%d ",i);
    }
    return 0;
}
电脑上没装编译器 你自己调试一下试试吧
因为不知道是不是你要的
你的那个程序写的有点乱

[ 本帖最后由 zxd543 于 2012-10-27 17:33 编辑 ]
#3
青春无限2012-10-27 17:41
#include <stdio.h>
   void main()
{
  int number,a,b,c;
  for(number=100;number<=999;number++)
    {
       a=number%10;
       b=(number/10)%10;
       c=number/100;
       if(a*a*a+b*b*b+c*c*c==number)
       printf("%d\n",number);
       }
}
   
   
#4
zhuanjia02012-10-27 20:22
主要是将各位数取出来,方法应该差不多。
个位:int a = num%10;
十位:int b = num/10%10;
百位:int c = num/100;
#5
chenghang2012-10-27 20:22
回复 3楼 青春无限
编译是正确的,但是执行时错误。
#6
stuniversity2012-10-27 20:28
回复 5楼 chenghang
我试过,3楼的运行没问题啊
#7
chenghang2012-10-27 20:39
回复 6楼 stuniversity
是的,刚刚电脑的原因。
#8
青春无限2012-10-27 22:30
呵呵。2楼程序运行有问题。你看看
#9
小小小火柴2012-10-28 11:18
   都差不多!2楼和三楼的都没问题!但是个人习惯喜欢2楼的代码,因为我写代码也是这种风格!
#include <stdio.h>
int main()
{
    int i,a,b,c;
    printf("100--999的水仙花数为:\n");
    for(i=100;i<=999;i++)
    {
        a=i%10;//获取个位数
        b=(i/10)%10;//获取十位数
        c=i/100;//获取百位数
        if(a*a*a+b*b*b+c*c*c==i)
            printf("%d\n",i);
    }
return 0;
}
 
#10
小小小火柴2012-10-28 11:19
回复 8楼 青春无限
    好像是复制三楼的代码会少掉一个   return 0;和 }!
#11
okauld2012-10-30 19:16
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(){
    int a,b,c,i;
    for(i=100;i<=999;i++){
    c=i%10;
    b=(i%100-c)/10;
    a=(i-10*b-c)/100;
    if(a*a*a+b*b*b+c*c*c==i)
    printf("%d\n",i);
    }   
    system("pause");
   return 0;  
}   


我也是菜鸟一个,我刚刚编的水仙花,你看看
#12
有容就大2012-10-30 21:18
C++版都用C写程序吗?
#13
wuhaifu19892012-10-31 09:23
程序写的有点乱!
1