输入2个正整数m和n(m>=1,n<=1000),输出m到n之间的所有水仙花数,为什么我写的,没有结果输出。

:编程题:输入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运行的

随便拿一个正整数,我想假如模10大于0的话,再模无数遍也是大于零的,所以你里面那个循环果断悲剧。追问

???为什么呢?不是应该会模到0吗,是int啊,不好意思,初学,不太懂,讲一下吧T T

追答

比如说83,第一次模10得3,第二次模就是3%10,还是等于3,以后也是。我想里层循环的条件大概是a>=10吧

追问

谢谢你啊,我好想本来思路就有问题,让我去写一下,太感谢你了,T T感动

温馨提示:内容为网友见解,仅供参考
无其他回答

急!!输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是...
输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,factorsum(12)的返回值是16(1+2+3+4+6) 我这个哪里错了?求指导 # include<stdio.h>...展开 记得不如遗忘 | 浏览7817 次 |举报...

VC编写程序:输入两个正整数m和n(m>=1,n<=1000),输出m~n之间的所有水仙花...
153是水仙花数。370是水仙花数。371是水仙花数。407是水仙花数。请按任意键继续. . .\/ include<stdio.h> define N 100 int sxhs(int number, int *is) { int d,sum = 0;int cube = 0,n = number;while(n) { d = n % 10;cube += d * d * d;sum += d;n \/= 10;} is ...

输入2 个正整数m和n(1<=m,n<=10000),输出m 和n之间所有的Fibonacci数...
public class Test { public static void main(String args[]) { int ri, repeat;int i, m, n;long f;Scanner in = new Scanner(System.in);repeat = in.nextInt();for (ri = 1; ri <= repeat; ri++) { m = in.nextInt();n = in.nextInt();for (int j = 1;; j++) ...

输入两个正整数m和n,(m>=1,n<=1000), 输出m~n之间所有满足各位数字的...
你这个程序有一个bug,就是没有判断用户的输入是否为合法的。对用户输入的m n的值范围没有进行判断。可进行相应的修改,使程序更完美。

输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数
if(wanshu==1){ continue;} if(wanshu>=x&&wanshu<=y)cout<<"n以内的完数:"<<wanshu<<"\\t"<<endl;} system("pause");} 解这个题的方法有很多,我写一个吧!!!x代表m,y代表n(至于n不能输太大,输入10就可以达到你题的要求了,另外我写的是c++,思想没问题)传个图吧!!!

...数:输入两个正整数m和n(1<=m,n<=1000),输出m~n之间的所有满足各...
int fun(int a){ int b,c,s;b=a; s=0; while ( b ) { c=b%10; b\/=10; s+=c*c*c; } if ( s==a ) return 1; else return 0;} void main(){ int m,n,i;scanf("%d%d",&m,&n);for ( i=m;i<=n;i++ ) if ( fun(i) ) printf("%d ",i);printf("\\n...

...m,n(m大于等于1,n小于等于1000),输出m到n之间的水仙花数。_百度知 ...
include <stdio.h> #include <stdlib.h>void main() { int i,j,k,t; int m,n; scanf("%d%d",&m,&n); if(m>n) { t=m; m=n; n=t; } for(t=m;t<=n;t++) { i=t\/100;\/*分解出百位*\/ j=t\/10%10;\/*分解出十位*\/ k...

C语言。输入2个正整数m和n(m>=1,n<=1000),输入m和n之间的所有水仙花数...
int s=0,flag=0,a,b,c;a=m\/100;\/\/百位 c=m%10;\/\/个位 b=m\/10%10;\/\/十位 s+=a*a*a+b*b*b+c*c*c ;if(s==m){ flag=1;\/\/printf("a=%d, b=%d, c=%d, s=%d\\n", a, b, c, s);} return(flag);} main(){ int start = 0, end = 0;printf("min number...

c程 用函数编写水仙花数程序
具体题目为 程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入2 个正整数 m 和 n(1<=m,n<=1000),输出 m 到 n 之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。要求定义并调... 展开 并...

...m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有满足各位数字的立方...
sum=sum+pow(digit,3);\/\/将和加上上行代码所获得的个位数字的立方和 number=number\/10;\/\/将数字除以10,继续while循环 } if(sum==temp)\/\/根据sum的结果判断是否为水仙花树 res=1;else res=0;return res;} 这个函数用于判断是否是水仙花数(也就是你说的各位数字立方和等于本身)...

相似回答