
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;
} 展开
以下是我打出的源代码,帮忙看看有什么问题:
#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;
} 展开
1个回答
展开全部
#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有什么用呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询