Xcode工具C语言关于自定义函数报错

使用mac的Xcode运行C语言代码遇到报错:Non-void function does not return a value in all control paths
代码想实现打印100到200之间的素数,并且统计数量,但是在自定义函数中遇到报错
代码如下

#include <stdio.h>
int is_prime(int n)
{
    int j = 0;
    for(j=2;j<n;j++)
    {
        if(n%j == 0)
            return 0;
    }
    if(j==n)
        return 1;
}
//在这个地方遇到报错信息
int main(void)
{
    int i = 0;
    int count = 0;
    for(i=100;i<=200;i++)
    {
        if(is_prime(i) == 1)
        {
            printf("%d\n",i);
            count++;
        }
    }
    printf("count = %d\n",count);
    return 0;
}

此时当我删掉函数中if(j==n)这个判断语句,因为感觉这个判断可有可无,就不会报错了,但结果打印了100到200的所有数字,并没有实现代码的要求。所以请求师兄们指导一下报错的原因和需要修改的地方,但我觉得代码没毛病呀。

没有吧,打印的素数没有问题,你统计的count 有问题,count 应该放到素数判断里面

if(is_prime(i) == 1)
{
       printf("%d\n",i);
       count++;
}

int is_prime(int n) 函数是有返回值的,函数里逻辑写法有一个漏洞,当 n = 1 时,函数的返回值是多少?修改如下,供参考:

#include <stdio.h>
int is_prime(int n)
{
    int j = 0;
    for(j=2;j<n;j++)
    {
        if(n%j == 0)
            return 0;
    }
    return j == n;  // 修改
    //if(j==n)      // 修改
    //    return 1; // 修改
}
//在这个地方遇到报错信息
int main(void)
{
    int i = 0;
    int count = 0;
    for(i=100;i<=200;i++)
    {
        if(is_prime(i) == 1){ // 修改
            printf("%d\n",i);
            count++;          // 修改
        }
    }
    printf("count = %d\n",count);
    return 0;
}