
输入2个正整数m和n(m>=1,n<=1000),输出m到n之间的所有水仙花数,为什么我写的,没有结果输出。
:编程题:输入2个正整数m和n(m>=1,n<=1000),输出m到n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如,153的各位数字的立方和是1^...
:编程题:输入2个正整数m和n(m>=1,n<=1000),输出m到n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如,153的各位数字的立方和是1^3+5^3+3^3=153.
无法有结果的函数:
#include "stdio.h"
main(void)
{int m,n,i,z,a;
do {printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);}while(m<1||n>1000);
for(i=m;i<=n;i++)
{a=i;
z=0;
while (a>0){a=a%10;z=z+a*a*a;}
if(i==z) printf("%d",i);}
}
注在C-Free运行的 展开
无法有结果的函数:
#include "stdio.h"
main(void)
{int m,n,i,z,a;
do {printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);}while(m<1||n>1000);
for(i=m;i<=n;i++)
{a=i;
z=0;
while (a>0){a=a%10;z=z+a*a*a;}
if(i==z) printf("%d",i);}
}
注在C-Free运行的 展开
1个回答
2011-04-16
展开全部
随便拿一个正整数,我想假如模10大于0的话,再模无数遍也是大于零的,所以你里面那个循环果断悲剧。
更多追问追答
追问
???为什么呢?不是应该会模到0吗,是int啊,不好意思,初学,不太懂,讲一下吧T T
追答
比如说83,第一次模10得3,第二次模就是3%10,还是等于3,以后也是。我想里层循环的条件大概是a>=10吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询