水仙花数n位c语言程序,水仙花数C语言的
满意答案
fluzipvcjq
2014.05.23
采纳率:56% 等级:8
已帮助:164人
既然是输入三位数N,就不要数组了,用数组,你的意图是让其代替输入数据的吧
1、手工输入数据情况
void f(int x)
{
int d1,d2,d3;
d1=x/100;
d2=(x%100)/10;
d3=x%10;
if(x==d1*d1*d1+d2*d2*d2+d3*d3*d3)
printf("YES
");
else
printf("NO
");
}
int main(){
int x;
scanf("%d",&x);
while(x!=0)
{
f(x);
scanf("%d",&x);
}
return 0;
}
2、测试数据不是手工输入,而是由数组提供
void f(int x)
{
int d1,d2,d3;
d1=x/100;
d2=(x%100)/10;
d3=x%10;
if(x==d1*d1*d1+d2*d2*d2+d3*d3*d3)
printf("YES
");
else
printf("NO
");
}
//打印所有的水仙花数
int main()
{
int i;
int j=0;
int a[900];
for(i=100;i<1000;i++)
a[j++]=i; //把所有的三位数都存储到数组a里,以备他用
for(j=0;j<900;j++)
f(a[j]);
return 0;
}
其实,就是为了让你练习使用数组,否则可以不用数组,如下
int main()
{
int i;
for(i=100;i<1000;i++)
f(i);
return 0;
}
呵呵,这么麻烦的问题,才10分啊!
00分享举报