Control达到非void函数的结束

时间:2014-03-18 15:05:00

标签: c++ function void

基本上我无法摆脱最后一个括号"error control reaches end of non-void function"

的错误消息
// DEFINE FUNCTION is_prime() HERE
double is_prime( int j)
{
    int  imin;
    int  imax;
    for (int j = imin; j <= imax; j++)
    {
        for ( int k=2; k<=imax; k++)
        {
            for (int x=2; x<k; x++)
            {
                if (k%x ==0)
                {
                    cout<<endl;
                }
                else
                    cout<< k ;
            }

        }
    }
}

3 个答案:

答案 0 :(得分:1)

在最后return之前的函数底部添加}语句以返回浮点值。 此外,您应该初始化iminimax OR 鉴于您的函数的目的,您可以将其键入:BOOL is_prime( int j)然后返回TRUE或FALSE,具体取决于传入的参数是否为素数。例如:

BOOL is_prime(int j)
{ 
   ...
   for ( int k=2; k<=imax; k++)
   //other code
   return TRUE;//if prime
   ...  
   return FALSE; //if not prime 
}

答案 1 :(得分:0)

你的is_prime函数应该返回一个double值! (例如return 3.0f

答案 2 :(得分:0)

您的函数有返回类型。您需要返回一个值。

// DEFINE FUNCTION is_prime() HERE
double is_prime( int j)
{
    int  imin;
    int  imax;
    for (int j = imin; j <= imax; j++)
    {
        for ( int k=2; k<=imax; k++)
        {
            for (int x=2; x<k; x++)
            {
                if (k%x ==0)
                {
                    cout<<endl;
                    return 1;
                }
                else
                    cout<< k ;
            }

        }
    }
}

您还可以删除返回类型,因为您似乎显示结果:void is_prime(int j)