c语言。。用if语句编程,输入一个三位数,判断是否为水仙花数。

 我来答
四舍五不入6
高粉答主

2020-01-08 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71370

向TA提问 私信TA
展开全部

三位的水仙花数就是每一位的立方之和和这个三位数相等的数,用if语句编程,输入一个三位数,判断是否为水仙花数,可以参考以下的代码:

include<stdio.h>

main()

{ int x,a,b,c;

scanf("%d",x);

a=x/100;

b=(x/10)%10;

c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf("YES");

else

printf("NOT");

}

扩展资料:

if的返回值为真或假,可以用bool型变量进行存储,占用一字节。

C语言中提供了2种形式的if语句:

1、if(表达式)语句1,例如:

if(x>y)

printf("%d",x);

2、if(表达式),语句1

else

语句2,例如:

if(x>y)

printf("%d",x);

else 

printf("%d",y);

参考资料来源:百度百科-if语句

White_MouseYBZ
2017-06-28 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6637万
展开全部

三位的水仙花数就是每一位的立方之和和这个三位数相等的数。由于固定为三位数,所以可以直接分离各位数字求结果。代码如下:

#include "stdio.h"

int main(int argc,char *argv[]){

int n,d;

printf("Please enter a 3 digits and is a positive integer...\nn=");

if(scanf("%d",&n)!=1 || n<100 || n>999){//限制输入的是3位数

printf("Input error, exit...\n");

return 0;

}

if((d=n/100)*d*d+(d=n/10%10)*d*d+(d=n%10)*d*d==n)//分离并求各位立方和与本数比较

printf("%4d -- Yes!\n",n);

else

printf("%4d -- No!\n",n);

return 0;

}

执行结果如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-10-27 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:890万
展开全部
1、严格的水仙花是三位数,并且其每位数的三次方的和等于它的本身。
例子如下:370是一个严格的水仙花数,3^3+7^3+0^3=370.
2、C 语言的"水仙花数"实现代码:
#include <stdio.h>
#include<math.h>
int main (void) {
long n,p;
long c,a,j,s[30],i,q;
p=0;
a=10;
scanf("%ld",&n);
q=n;
for (i=1;c>10 ;++i) {
c=n/a;
a=a*10;
}printf("i=%ld,a=%ld \n",i,a);
for (j=1;a>=10 ;++j) {
s[j]=n/(a/10);
n=n-s[j]*(a/10);
a=a/10;
printf("j=%ld,a=%ld\n",j,a);
}
for (j=1;j<=i ;j++) {
p+=pow(s[j],i);
printf("p=%ld,i=%ld\n",p,i);
}
if (p==q) {
printf("%ld 为水仙花数",q);
}else {
printf("%ld 该数不是水仙花数",q);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e57aad
2014-03-26 · TA获得超过212个赞
知道答主
回答量:84
采纳率:0%
帮助的人:70.7万
展开全部
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
次音光aA
2014-03-26 · TA获得超过1.5万个赞
知道答主
回答量:5119
采纳率:100%
帮助的人:682万
展开全部
include<stdio.h>
main()
{ int x,a,b,c;
scanf("%d",x);
a=x/100;
b=(x/10)%10;
c=x%10;
if(x==a*a*a+b*b*b+c*c*c)
printf("YES");
else
printf("NOT");
}
追问
main前没有void吗?有没有影响。
b=(x-a*100)╱10可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式