问题遇到的现象和发生背景
水仙花数
问题描述
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153)。
定义一个函数int function(int a, int b),计算区间[a,b]或区间[b,a]上水仙花数的个数。
输入说明
输入由两个整数a和b构成,a和b之间用空格分隔。0<a,b<10000
输出说明
输出区间[a,b]或区间[b,a]上水仙花数的个数。
输入样例
3 1000
输出样例
4
问题相关代码,请勿粘贴截图
#include<stdio.h>
int function(int a,int b)
{
int i,j,k,t,sum,c;
int d[5]={0};
if(a>b)
{
c=a;
a=b;
b=c;
}
c=0;
for(;a<=b;a++)
{
t=a;
sum=0;
for(j=0;t/10!=0;j++)
{
d[j]=t%10;
t=t/10;
}
while(t>0)
{
d[j]=t%10;
t/=10;
}
for(k=0;k<=j;k++)
{
if(j==1){sum+=d[k]*d[k];}
if(j==2){sum+=d[k]*d[k]*d[k];}
if(j==3){sum+=d[k]*d[k]*d[k]*d[k];}
}
if(sum==a){c++;}
}
return c;
}
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
c=function(a,b);
printf("%d",c);
return 0;
}
运行结果及报错内容
输入3 1000
输出 2
请问问题出在哪里?