程序纠错(关于return的问题)
题目:编写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息#include<stdio.h>
#include<math.h>
void main()
{
int x,flag;
int f(int m);
scanf("%d",&x);
flag=f(x);
if(flag==0)
printf("%d is not a prime number.\n",x);
else
printf("%d is a prime number.\n",x);
}
int f(int m)
{
int i,k;
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
{
break;
return(0);
}
return(1);
}
运行上面程序后发现不管输入什么数标志量flag始终是1,说明int f(int m)这个函数的返回值始终是1,难道上面这段程序执行完return(0)还会执行return(1)么?印象中好像是如果在被调用函数遇到return就不管下面的return了啊?