警告:当有返回值时,控制会到达非void函数的终点[关闭]

问题描述 投票:0回答:2
#include <stdio.h>

int is_prime(int number){

    int i;
    for(i=1;i<=number;++i){

        if (number/i == number && number/i == 1){
            return 1;
        }

        return 0;
    }
}

int main(void) 
{
    int min,max,i;
    scanf("%d%d",&min,&max);
    for(i=min;i<=max-2;i++){
        if(is_prime(i)&&is_prime(i+2)){
            printf("%d %d\n",i,i+2);
        }
    }
    return 0;
}

我一直收到“警告:非无效函数[-Wreturn-type]的控制到达末尾”错误,但main和is_prime函数始终返回一个值。

c loops for-loop primes function-definition
2个回答
0
投票

return为<1时,该功能不为number。>

只需将return移到for循环之外。现在,这毫无意义,您将在第一次迭代后放弃循环。您不需要循环,只需要if,或者return放在错误的位置即可。


0
投票

在循环语句之外,没有返回语句

© www.soinside.com 2019 - 2024. All rights reserved.