在c中编一个水仙花数的程序为什么出不来结果

来源:百度知道 编辑:UC知道 时间:2024/09/13 02:19:09
要判断一个数是不是水仙花数,我编的程序如下
#include<stdio.h>
void main()
{int x,a,b,c;
printf("请输入一个三位数,并按下回车键,判断其是否为水仙花数\n");
scanf("%d\n",&x);
a=x%10;
b=x/10%10;
c=x/100;
if(x=a*a*a+b*b*b+c*c*c)
printf("x是水仙花数");
else
printf("x不是水仙花数");
}
但出不来结果,请问各位大侠,哪错了?

楼主你先这样输入
231\n(\n)这个要手动输入。
那么结果就是对的啦

这个问题好多次被提到了
在scanf里不允许有其他非格式的符号。如果有的话。你必需在输入的时候也要写。
比如有逗号,你就要用逗号。
同样这里有\n,你就要打\n。
所以严格上说你这个没有错,但是你必需这样输入
123\n 再按回车。

或者最简单的你把\n去掉
变成scanf("%d",&x);

if(x==a*a*a+b*b*b+c*c*c)//而且楼主这里是==。不是=。=成了赋值。这里需要的是判断

#include<stdio.h>

void main()
{int x,a,b,c;
printf("请输入一个三位数,并按下回车键,判断其是否为水仙花数\n");
scanf("%d",&x);
a=x%10;
b=x/10%10;
c=x/100;
if(x==a*a*a+b*b*b+c*c*c)
printf("x是水仙花数");
else
printf("x不是水仙花数");

}

scanf()不要加\n
#include<stdio.h>
void main()
{int x,a,b,c;
printf("请输入一个三位数,并按下回车键,判断其是否为水仙花数\n");
scanf("%d",&x);//此处不要加\n
a=x%10;
b=x/10%10;
c=x/100;
if(x=a*a*a+b*b*b+c*c*c)
printf("x是水仙花数");
else
printf(