感觉程序没问题 为啥结果不对

题目大概是输入两个数 求这两个数之间素数的个数以及所有素数的和。感觉写的没问题呀 为啥结果不对呢。求指点

img

img

应该是因为把第23行的sum+=1这里求素数和错了,改为sum+=i ,然后sum和cnt没有初始化为0,给他们赋一个初始值0即可,修改如下:

参考链接:
100以内所有的素数有那些_作业帮

#include <stdio.h>

int main(void){
    
    int m,n;
    int i;
    int cnt=0;
    int sum=0;
    scanf("%d %d",&m,&n);
    if(m==1){
        m=2;
    }
    
    for(i=m;i<=n;i++){
        int isprime=1;
        int k;
        for(k=2;k<i-1;k++){
            if(i%k==0){
                
                isprime=0;
                break;
            }
        }
        
        if(isprime){
        //    printf("%d ",i);
            cnt++;
            sum+=i;
        }
    }
    
    printf("%d %d\n",cnt,sum);
    
    return 0;
} 

img

应该是sum=sum+i,这里面判断素数可以写一个调用函数的办法可以让代码看起来简洁一点