用c语言输出素数但不知道错误在哪

用c语言输出素数但不知道错误在哪
烦请经验人赐教

img

这里是凑字数这里还是凑字数

代码没有看出明显的错误,但是i<n,这里不包括n哦。是不是你的题目要求输出包括n在内的素数。
另一个问题,printf("%d", i),这里每次输出没有分隔符,会使得结果黏在一起,建议修改为printf("%d ", i);

【以下回答由 GPT 生成】

代码中的问题在于在第一个for循环中,判断条件为i < n,而实际上这会使程序输出大于等于n的数。修复的建议是将判断条件修改为i <= n

此外,在内层的for循环中,如果i能被j整除,即说明i不是素数,应将k的值设为0,并且跳出循环。这可以通过添加一个break语句来实现。

以下是修复后的代码:

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);

    for (int i = 2; i <= n; i++) {
        int k = 1;

        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                k = 0;
                break;
            }
        }

        if (k == 1) {
            printf("%d ", i);
        }
    }

    return 0;
}

修复后的代码将能正确输出所有小于输入的数字的素数。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

在第14行,k = 0; 的后面插入: break;

代码没错,算法不好