输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和。

我的答案溢出了....
#include<stdio.h>
int prime(int m)
{
int i,k;
if(m<2)return 0;
k=i/2;
for(i=2;i<=k;i++){
if(m%i==0)
return 0;
}
return 1;
}
int main(void)
{
int m,n,count,sum;
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);
for(m;m<=n;m++){
if(prime(m)==1){
count++;
sum=sum+m;
}
}
printf("Count=%d\n,sum=%d\n",count,sum);
return 0;
}

第1个回答  推荐于2016-12-02
#include<stdio.h>
int prime(int m)
{
int i,k;
if(m<2)return 0;
k=m/2; //把i改成m
for(i=2;i<=k;i++){
if(m%i==0)
return 0;
}
return 1;
}
int main(void)
{
int m,n,count,sum=0; //sum要赋初值
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);
for(m;m<=n;m++){
if(prime(m)==1){
count++;
sum=sum+m;
}
}
printf("Count=%d,sum=%d\n",count,sum); //中间的\n去掉,不好看
return 0;
}追问

不行啊 我获得的count 溢出了

谢谢 我看到了 count没有初值

追答

你真厉害啊,一下就看出问题了

本回答被提问者采纳
相似回答