c语言,水仙花数,哪里有问题?求指出


/*水仙花数。输入俩个正整数m和n(m>=1,n<=1000),输出m~n之间的所有水仙花数。
水仙花数是指各位上数字的立方和等于其自身的数。
例如,153的 各位上数字的立方和是1的三次方+ 5的三次方+3的三次方=153.*/
#include
int main()
{
    int i,t,s,m,n,digit;
    prinyf("Input m:");
    scanf("%d",&m);
    printf("Input m:");
    scanf("%d",&n);
    for(i=m;i<=n;i++)
    {
        t=i;
        s=0;
        while(t!=0)
        {
            digit=t%10;
            s+=digit*digit*digit;
            t=t/10;
        }
        if(t==i)
        printf("%d\n",i);
    }
    return 0;
}

基于Monster 组和GPT的调写:
代码中存在几个问题:

在第5行代码中,printf函数的拼写有误,应该是printf而不是prinyf。
在第7行代码中,第二个scanf函数的提示信息也应该是"Input n:"而不是"Input m:"。
在第17行代码中,判断条件应该是s==i而不是t==i。

#include <stdio.h>
int main()
{
int i,t,s,m,n,digit;
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);
for(i=m;i<=n;i++)
{
t=i;
s=0;
while(t!=0)
{
digit=t%10;
s+=digit*digit*digit;
t=t/10;
}
if(s==i)
printf("%d\n",i);
}
return 0;
}
 if(t==i)  这句错误,应修改为:if (s == i) 


 
/*水仙花数。输入俩个正整数m和n(m>=1,n<=1000),输出m~n之间的所有水仙花数。
水仙花数是指各位上数字的立方和等于其自身的数。
例如,153的 各位上数字的立方和是1的三次方+ 5的三次方+3的三次方=153.*/
#include<stdio.h>
int main()
{
    int i,t,s,m,n,digit;
    printf("Input m:");
    scanf("%d",&m);
    printf("Input n:");
    scanf("%d",&n);
    for(i=m;i<=n;i++)
    {
        t=i;
        s=0;
        while(t!=0)
        {
            digit=t%10;
            s+=digit*digit*digit;
            t=t/10;
        }
        if(s==i)
        printf("%d\n",i);
    }
    return 0;
}