请教有哪位高手可以帮忙解决这有关问题吗
请问有谁可以帮忙解决这问题吗?
#include <stdio.h>
int f(int x)
{int i,k=0,l;
if(x==2)
l=1;
else if(x> 2)
{for(i=2;i <x;i++)
if(x%i==0)
{k=i;
break;
}
if(k!=0)
l=0;
else l=1;
return l;
}
}
void main()
{int x,e;
scanf( "%d ",&x);
e=f(x);
if(e==0)
printf( "x不是素数。 ");
else printf( "x是素数。 ");
}
\判断素数.cpp(17) : warning C4715: 'f ' : not all control paths return a value
这是什么意思?怎样改?谢谢!
------解决方案--------------------
return l写在}之外就行了,你这样的话只有ELSE语句返回正确的l值,即修改如下:
int f(int x)
{
int i,k=0,l;
if(x==2)
l=1;
else if(x> 2)
{
for(i=2;i <x;i++)
if(x%i==0)
{
k=i;
break;
}
if(k!=0)
l=0;
else l=1;
}
return l;
}
#include <stdio.h>
int f(int x)
{int i,k=0,l;
if(x==2)
l=1;
else if(x> 2)
{for(i=2;i <x;i++)
if(x%i==0)
{k=i;
break;
}
if(k!=0)
l=0;
else l=1;
return l;
}
}
void main()
{int x,e;
scanf( "%d ",&x);
e=f(x);
if(e==0)
printf( "x不是素数。 ");
else printf( "x是素数。 ");
}
\判断素数.cpp(17) : warning C4715: 'f ' : not all control paths return a value
这是什么意思?怎样改?谢谢!
------解决方案--------------------
return l写在}之外就行了,你这样的话只有ELSE语句返回正确的l值,即修改如下:
int f(int x)
{
int i,k=0,l;
if(x==2)
l=1;
else if(x> 2)
{
for(i=2;i <x;i++)
if(x%i==0)
{
k=i;
break;
}
if(k!=0)
l=0;
else l=1;
}
return l;
}