| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 22924 人关注过本帖
标题:输入一个三位整数判断它是否为水仙花数,即各位数字的立方和等于该数本身
只看楼主 加入收藏
x1148291109
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2016-10-19
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:10 
输入一个三位整数判断它是否为水仙花数,即各位数字的立方和等于该数本身
#include<stdio.h>
int main()
{
    int a,b,c,d;
    scanf("%d%d%d",&a,&b,&c);
     d=a*100+b*10+c;
     printf("%d\n",d);
     if(0<a<10,0<=b<10,0<=c<10)
     if(d!=a*a*a+b*b*b+c*c*c)
         printf("N\n");
     else
     printf("Y\n");

    return 0;
}

这个运行之后虽然可以,但是不能打连续的三个数字   求如何输入一个三位数 附上题目:输入一个三位整数判断它是否为水仙花数,即各位数字的立方和等于该数本身
搜索更多相关主题的帖子: 水仙花 
2016-10-27 16:28
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:6 
#include<stdio.h>
#include<math.h>
main()
{
     int a,b,c,d,s=0;
     scanf("%d",&b);
     d=b;
     
     while(d > 9)
     {
      a=d%10;
      d=d/10;
      s+=a*a*a;
     }
     s=s+d*d*d;
     
     if(s == b)
      {
          printf("Y\n");
      }
     else
      {
          printf("N\n");
      }
     return 0;
}

早知做人那么辛苦!  当初不应该下凡
2016-10-27 16:58
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:1 
while(scanf("%d", &num))
{
    if(num / 100 >= 1 && num / 1000 < 1)
        break;
    system("cls");
}    //这就确保直到你输入三位数或者输入不为数字,循环才会跳出
2016-10-27 17:01
x1148291109
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2016-10-19
收藏
得分:0 
回复 2楼 炎天
能详细解释一下吗
2016-10-27 17:31
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:1 
给定一个三位数456.你的scanf是想令“a=4,b=5,c=6”可是计算机判断一个%d读完了没有可不是只读一个数字。除非你用%c,一次读一个字符,然后转换为数字。这个做法还有一些隐患,比如假如用户不按常理出牌,偏不给3个数字,而是给了4位数,两位数,一位数。这时候程序产生意料之外的错误。

一般人的做法都是scanf("%d",&sum);a=sum/100;b=sum/10%10;c=sum%10;

φ(゜▽゜*)♪
2016-10-27 17:45
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:1 
#include<stdio.h>
int main()
{
    int a,b,r;
    scanf("%d",&a);
    b=a;
    while(a){
        r=a%10;   //取出a的每位
        b-=r*r*r;  //b分别减去个位十位百位的3次方
        a/=10;
    }
    if(!b)printf("Yes\n");  //若b最后减为0满足否则不满足
    else printf("No\n");
    return 0;
}
2016-10-27 17:53
纵横阳仔
Rank: 7Rank: 7Rank: 7
来 自:自学成才的火星人儿
等 级:贵宾
威 望:26
帖 子:147
专家分:698
注 册:2016-10-20
收藏
得分:0 
直接输入不就行了,难道不是人输入的?
2016-10-27 20:22
纵横阳仔
Rank: 7Rank: 7Rank: 7
来 自:自学成才的火星人儿
等 级:贵宾
威 望:26
帖 子:147
专家分:698
注 册:2016-10-20
收藏
得分:1 
#include<stdio.h>
int main()
{int a,b,c,m,n;
scanf("%d",&m);
a=m%10;         /* a,b,c为这个三位数的每一位数字,m直接输入三位数就可以,例如直接输入153。 整个程序只是判断该三位数是否是水仙花数,不能全部找出*/
b=((m-a)/10)%10;
c=(m-b*10-a)/100;
n=a*a*a+b*b*b+c*c*c;
if(n==m)
printf("%d是水仙花数\n",m);
else printf("%d不是水仙花数\n",m);
return 0;
}
2016-10-27 20:48
x1148291109
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2016-10-19
收藏
得分:0 
回复 7楼 纵横阳仔
比如123  输入的话只能输1  2   3   不然没法运行
2016-10-27 21:06
x1148291109
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2016-10-19
收藏
得分:0 
多谢各位了
2016-10-27 21:17
快速回复:输入一个三位整数判断它是否为水仙花数,即各位数字的立方和等于该数本 ...
数据加载中...
 
   



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

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