C语言问题 ,提示 warning C4715: ✀flower✀ : not all control paths return a value 求指导

2025-02-22 09:50:56
推荐回答(5个)
回答1:

你在函数的最外层再写一个return 0; //就不会警告了,而且对程序也不会用影响
估计编译器比较笨,理解不了你的意图。

回答2:

你这个函数由于有错误,因此在for循环里有很多满足条件,所以有很多返回值,而一个函数只需要一个返回值,因此有警告,我把你的程序改了,也没有警告了!!
#include
int flower(int n);
void main()
{
int m;
int flower(int n);
for(m=100;m<1000;m++)
{ if (flower(m)==1)
printf("%d\n",m);

}
}
int flower(int n)
{
int i,j,k,flag=0;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
{
if(n==i*100+j*10+k)
{
if(n==((i*i*i)+(j*j*j)+(k*k*k)))
{flag++;
}
}
else
continue;
}
if(flag>0)
return 1;
else
return 0;
}

回答3:

#include

void main()
{
int m;
int flower(int n);
for(m=100;m<1000;m++)
{ if (flower(m)==1)
printf("%d\n",m);
}

}
int flower(int n)
{
int i=n/100,j=(n/10)%10,k=n%10;
if(n==((i*i*i)+(j*j*j)+(k*k*k)))return 1;
else return 0;
}
不知道是不是这个意思,可以运行,开始的问题是你传入了一个m给flower,但是在这个子函数中的循环里又改变了m(就是给n赋了值),所以才会说没有有效的返回值。

回答4:

#include
void main()
{
int m;
int flower(int n);
for(m=100;m<1000;m++)
{
if (flower(m)==1)
printf("%d\n",m);

}
}
int flower(int n)
{
int i,j,k;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
{
n=i*100+j*10+k;
if(n==((i*i*i)+(j*j*j)+(k*k*k)))
{
return 1;
}
}
return 0;
}

回答5:

你的最后return 1; 0
这里出现的问题,所以有警告,