C语言 求素数 算法出问题了

要求统计出第n个素数是什么。
我的这个前四个还是对的2 3 5 7。
到第五个就是9了,改了很多遍都改不掉。
测试的时候a到9了。
x=2;
s=9%2;
之后瞬间x=8了,跳出循环了
改两个小时了,就是弄不出来
我的精神状态已经在崩溃边缘了

img

img

img

img

函数的else if错误啊
是else if(x==n-1)不是else if(x=n-1)啊

修改如下,供参考:

#include <stdio.h>
int isprime(int n)
{
    int i;
    if (n <= 3)   return n > 1;
    for (i = 2; i * i <= n; i++)
        if (n % i == 0) return 0;
    return 1;
}
int main()
{
    int n, m, y = 0, j = 1;
    scanf("%d %d", &n, &m);
    while (j < m) {
        if (isprime(j)) { //如果 j 是素数
            y++;           //y 计数加 1
            if (y == n)    //当 y = n 时,输出 j , 第 n 个素数
                printf("%d", j);
        }
        j++;    //每判断一次,j 自增一次,直到 j >= m 
    }
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632