输入两个正整数 m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有满足各位数字的立方和等于它本身的数。

程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入两个正整数m和n(1<=m,n<=1000),... 程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入两个正整数 m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有满足各位数字的立方和等于它本身的数。
例如153的各位数字的立方和是 1^3+5^3+3^3=153 ,这里a^b表示a的b次方。
输出使用语句:printf("%d\n", i);
输入输出示例:括号内为说明
输入:
2 (repeat=2)
100 400 (m=100, n=400)
1 100 (m=1, n=100)
输出:
result:
153 (1*1*1+5*5*5+3*3*3=153)
370 (3*3*3+7*7*7=370)
371 (3*3*3+7*7*7+1*1*1=371)
result:
1 (1*1*1=1)

#include "stdio.h"
int main(void)
{
int i, digit, m, n, number, sum;
int repeat, ri;

scanf("%d",&repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
printf("result:\n");
/*---------*/
}
}

我的程序为什么不对啊
#include "stdio.h"
int main(void)
{
int i, digit, m, n, number, c,sum;
int repeat, ri;

scanf("%d",&repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
printf("result:\n");
for(i=m;i<=n;i++){
digit=i%10;
number=(i/10)%10;
c=i/100;
if(i==digit*digit*digit+number*number*number+c*c*c)

printf("%d\n", i);}
}
}
展开
 我来答
cuizhixuan5980
2009-10-25
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
int is(int number)//定义一个返回值为int型的函数,命名为is,并定义一个int型参数number
{
int temp,digit,sum,res;
temp=number;//将传递进来的参数number赋值给temp
sum=0;//初始化和为0
while(number!=0){//如果传递进来的数字不为0,执行while循环
digit=number%10;//获取个位上的数字
sum=sum+pow(digit,3);//将和加上上行代码所获得的个位数字的立方和
number=number/10;//将数字除以10,继续while循环
}
if(sum==temp)//根据sum的结果判断是否为水仙花树
res=1;
else
res=0;
return res;
}
这个函数用于判断是否是水仙花数(也就是你说的各位数字立方和等于本身)
任颜00i
推荐于2016-12-01 · TA获得超过788个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:341万
展开全部
我调试了一下,没有问题啊,你把我这个复制过去再试试。

#include <stdio.h>
int main(void)
{
int i, digit, m, n, number, c,sum;
int repeat, ri;

scanf("%d",&repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
printf("result:\n");
for(i=m;i<=n;i++){
digit=i%10;
number=(i/10)%10;
c=i/100;
if(i==digit*digit*digit+number*number*number+c*c*c)

printf("%d\n", i);}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MastermindLL
2009-10-25 · TA获得超过663个赞
知道答主
回答量:113
采纳率:0%
帮助的人:0
展开全部
int is(int number)//定义一个返回值为int型的函数,命名为is,并定义一个int型参数number
{
int temp,digit,sum,res;
temp=number;//将传递进来的参数number赋值给temp
sum=0;//初始化和为0
while(number!=0){//如果传递进来的数字不为0,执行while循环
digit=number%10;//获取个位上的数字
sum=sum+pow(digit,3);//将和加上上行代码所获得的个位数字的立方和
number=number/10;//将数字除以10,继续while循环
}
if(sum==temp)//根据sum的结果判断是否为水仙花树
res=1;
else
res=0;
return res;
}
这个函数用于判断是否是水仙花数(也就是你说的各位数字立方和等于本身)

你这个程序有一个bug,就是没有判断用户的输入是否为合法的。对用户输入的m n的值范围没有进行判断。可进行相应的修改,使程序更完美。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式