请高手为我纠错 看下为什么输入不正确
描述 请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。
输入
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出
如果n是水仙花数就输出Yes
否则输出No
样例输入
153
154
0样例输出
Yes
No
为什么输入的时候总不对 大神帮我看下 谢谢
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
bool ShuiXianHua(int n);
void go();
bool ShuiXianHua(int n) //判断是否为水仙花数
{
int i = (n % 10);
int j = ((n / 10) % 10);
int k = (n / 100);
if(((i * i * i)+(j * j * j)+(k * k * k)) == n)
return true;
else return false;
}
void go()//作循环和退出
{
int n;
while (1)
{
printf("请输入一个三位数或者输入0可以退出:\n");
scanf("%d \n" , &n) ;
if (n != 0)
{
if ((n >= 100) && (n < 1000))
{
bool fag = ShuiXianHua(n);
if (fag)
printf("yes\n");
else printf("no\n");
}
else
printf("输入错误!请重新输入:\n");
}
else
break;
}
}
main()
{
go();
}