求n的水仙花数(2<n<10) 不知道错在哪里
#include<stdio.h>#include<stdlib.h>
#include<math.h>
int main(void)
{
int m=1,n,a,b,i,p,j,t=0,s=1,str[12];
printf("输入N的值");
scanf("%d",&n);
while(n>10||n<2)
{
fflush(stdin);
printf("重新输入n的值");
scanf("%d",&n);
}
for(i=0;i<n;i++)
{
m=m*10;
}
for(i=(m/10);i<m;i++)
{
p=i;
for(j=0;j<n;j++) //把数分离开来,并存入数组中
{
str[j]=p%10;
p=p/10;
}
for(a=0;a<n;a++)
{
for(b=0;b<n;b++)
s=s*str[a]; //求每位数的n次方
t=t+s;
} //求和
if(t==i)
printf("%d",t); //输出水仙花数
t=0;
s=1;
//重新赋值
}
system("pause");
return 0;
}