#,这个有什么问题啊,为什么能在编译器得到正确的结果,但是在洛谷不对啊T-T

#各位我想请教一下,这个有什么问题啊,为什么能在编译器得到正确的结果,但是在洛谷不对啊T-T
#include
#include
#include
int main(int argc, char *argv[]) {
int l,i,j,sum,num=0,flag;
scanf("%d",&l);
if(l<2){
printf("0");
}
if(l==2){
printf("2\n1\n");
}
for(i=2;i<=l;i++){
flag=0;
for(j=2;j
if(i%j==0){
flag=1;
break;
}
}
if((sum+i)<=l&&flag==0){
num++;
printf("%d\n",i);
sum+=i;
}

}
printf("%d\n",num);
return 0;

}

for(i=2;i<=l;i++)
这是在弄啥咧
让你输出所有质数的和小于L
不是让你输出小于L的所有质数
不审题呀

sum 没有初始化,修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]) {
    int l, i, j, sum = 0, num = 0, flag;
    scanf("%d", &l);
    if (l < 2) {
        printf("0");
    }
    if (l == 2) {
        printf("2\n1\n");
    }
    for (i = 2; i <= l; i++) {
        flag = 0;
        for (j = 2; j < i; j++)
            if (i % j == 0) {
                flag = 1;
                break;
            }
        if ((sum + i) <= l && flag == 0) {
            num++;
            printf("%d\n", i);
            sum += i;
        }
    }
    printf("%d\n", num);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

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