C语言函数题目求指错。。

#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;跑到了循环外,每次都累加了。