C程 求找错

题目为:程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入2个正整数m和n(1<=m,n<=50... 题目为:
程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入2个正整数 m 和 n(1<=m,n<=500),统计并输出 m 到 n 之间的素数的个数以及这些素数的和。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
要求定义并调用函数 prime(m) 判断m是否为素数,当m为素数时返回1,否则返回0,函数形参 m 的类型是int,函数类型是int。
输入输出示例:括号内是说明
输入:
1 (repeat=1)
1 10 (m=1, n=10)
输出:
Count = 4, sum = 17 (1到10之间有4个素数:2,3,5,7)
#include "stdio.h"
#include "math.h"
int main(void)
{
int count, i, m, n, sum;
int repeat, ri;
int prime(int m);

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
/*---------*/
printf("Count = %d, sum = %d\n", count, sum);
}
}

/*---------*/

我的程序是:
#include "stdio.h"
#include "math.h"
int main(void)
{
int count, i, m, n, sum;
int repeat, ri;
int prime(int m);

scanf("%d", &repeat);
count=0;
sum=0;
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
for(i=m;i<=n;i++){
if(prime(i)){
count=count+1;
sum=sum+i;
}
}
printf("Count = %d, sum = %d\n", count, sum);
}
}

int prime(int m){
if(m==1) return 0;
else{
int i;
for (i = 2; i <= m/2; i++)
if (m % i == 0) break;
if (i > m/2 ) return 1;
else return 0;
}
}

输出后与题目要求的输出是一样的(1到10 COUNT=4 SUM=17)可是提交系统系统显示答案错误,一定有错,可找不出。。 求高人指点下
展开
 我来答
百度网友6c5eac102
2010-04-19 · TA获得超过1101个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:594万
展开全部
//对count ,sum的符值要在第一个for 循环中,修改如下,
#include "stdio.h"
#include "math.h"
int main(void)
{
int count, i, m, n, sum;
int repeat, ri;
int prime(int m);

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
count=0;
sum=0;
for(i=m;i<=n;i++){
if(prime(i)){
count=count+1;
sum=sum+i;
}
}
printf("Count = %d, sum = %d\n", count, sum);
}
}

int prime(int m){
if(m==1) return 0;
else{
int i;
for (i = 2; i <= m/2; i++)
if (m % i == 0) break;
if (i > m/2 ) return 1;
else return 0;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式