#include
int main(void)
{
int m, n,sum,count=0;
int prime(int m);
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
sum=0;
for (;m<=n;m++){
if (prime(m)==1)
count ++; sum=sum+m;}
printf("count=%d, sum=%d",count,sum);
return 0;}
int prime(int m)
{
int i;
if (m==1)
return 0;
for (i=2;i<=m-1;i++)
{ if (m%i==0) return 0;
else return 1 ;}
}
【输入输出样例1】(下划线部分表示输入)
Input m: 1
Input n: 10
count=4, sum=17
我的是错的输出的SUM是55谁能解答下
#include<stdio.h>
int prime(int m);
int main(void)
{
int m=1, n=10,sum,count=0;
sum=0;
for (;m<=n;m++){
if (prime(m))
{count++; sum=sum+m;}
}
printf("count=%d, sum=%d\n",count,sum);
return 0;}
int prime(int m)
{
int i;
if (m==1)
return 0;
for (i=2;i<=m-1;i++)
{ if (m%i==0) return 0;
}
return 1;
}
http://codepad.org/iUO6SUGw
count=4, sum=17
你的问题在这里
if (prime(m)==1)
count ++; sum=sum+m;
你缺少了分号,导致
sum=sum+m;跑到了循环外,每次都累加了。