c语言求水仙花数字的程序,怎么就找不出错了呢,求大神看看哪里不对

2025-04-04 11:06:42
推荐回答(2个)
回答(1):

scanf("%d%d", &m, &n);
sum=0;
for(i=m;i<=n;i++)
{
digit=i;
这里的 sum=0;放进循环里
scanf("%d%d", &m, &n);
for(i=m;i<=n;i++)
{
sum=0;
digit=i;

还有就是你这个只能验证3位数的水仙花数。。。

回答(2):

int main( )
{
int ri,repeat;
int i, digit, m, n;
double sum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++)
{
scanf("%d%d", &m, &n);

for(i=m;i<=n;i++)
{
sum=0; <===这个地方每次都需要清0,否则会有问题。
digit=i;
while(digit!=0)
{
sum=sum+pow((double)(digit%10),3);
digit=digit/10;
}
if(sum==i)
printf("%4d\n",i);
}
}
}