C语言编程问题

2.编写程序,输入一个正整数num(100≤num<1000),判断其是否为水仙花数。要求,定义并调用函数intflower(intnum)判断其是否为水仙花数。以下是我... 2. 编写程序,输入一个正整数num(100≤num<1000),判断其是否为水仙花数。要求,定义并调用函数int flower(int num)判断其是否为水仙花数。
以下是我打出的源代码,帮忙看看有什么问题:

#include<stdio.h>
int main()
{
int m,n,i,flag=0;
int flower(int num);

scanf("%d%d",&m,&n);
while(m<n)
{
flower(m);
if(i==1)
{
printf("%d\n",m);
flag=flag+1;
}
m++;
}
if(flag==0)
{
printf("no\n");
}
return 0;
}
int flower(int num)
{
int d1,d2,d3,i;
d1=num%10;
d2=num/10%10;
d3=num/100;
if(num=d1*d1*d1+d2*d2*d2+d3*d3*d3)
{
i=1;
}
else
{
i=0;
}
return num;
}
展开
 我来答
My_Persistence
2016-11-16 · TA获得超过3470个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:457万
展开全部
#include<stdio.h>
int main()
{
int m,n,i,flag=0;    
int flower(int num); 

scanf("%d%d",&m,&n);
while(m<n)
{
i=flower(m);  //函数返回值赋值给i
if(i==1)
{
printf("%d\n",m);
flag=flag+1;  
}
m++;
}
if(flag==0)
{
printf("no\n");
}
return 0;
}
int flower(int num)
{
int d1,d2,d3,i;
d1=num%10;
d2=num/10%10;
d3=num/100;
if(num ==d1*d1*d1+d2*d2*d2+d3*d3*d3) //是==而不是=
{
i=1;
}
else
{
i=0;
}
return i;  //应该是return i
}

帮你修改了一下,示例运行结果:

100 1000

153

370

371

407

追问
为什么最后是return i而不是num?
追答
变量i是用来判断num是与不是水仙数的啊,如果返回值是1,则是,返回值是0则不是啊,怎么返回num呢,返回num有什么用呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式