关于#c++#的问题,请各位专家解答!

img


为什么运行结果不对啊,不理解啊,按这个逻辑该怎么修改这个代码,求出2-100内的所有素数

这段代码中存在语法错误。应该将第一行的语句结尾的分号改为左花括号,表示开始一个代码块。同时,if语句的判断条件应该是i%j==0,表示i能够被j整除。最后,在内层for循环结束后,需要将k重置为0。

#include <stdio.h>

int main()
{
    int k;
    for (int i = 2; i <= 100; i++) {
        k = 0;
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                k++;
                break;
            }
        }
        if (k == 0) {
            printf("%d ", i);
        }
    }

    return 0;
}


供参考:

img

我把你得改了一下,其实就是你多层循环没搞明白,你以后可以再学学,望采纳

#include <stdio.h>
#include <string.h>
int main(){
    int k=0;
    for(int i=2;i<=100;i++){
        for(int j=2;j<i;j++){
            if(i%j==0){
                k++;
            }
        }
        if(k==0)
            {
                printf("%d ",i);
            }
            k=0;
    }
}