帮我看下这题哪里错了?

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:44:10
题目:输入m,n(1<=m,n<=500),统计输出m,n之间素数个数及素数和。
我的答案:
#include<stdio.h>
void main()
{
int m,n,i,count=0,sum=0,max,min;
int prime(int m);
printf("Input m,n:");
scanf("%d%d",&m,&n);
while(1<=m<=500&&1<=n<=500){
if(m>n)
{ max=m;min=n;}
else
{ max=n;min=m;}
for(i=min;i<=max;i++){
if(prime(i))
{ count++;
sum=sum+i;}

printf("sum=%d count=%d",sum,count);
}

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

}

刚运行过,没错了

#include<stdio.h>
void main()
{
int m,n,i,count=0,sum=0,max,min;
int prime(int m);
printf("Input m,n:");
scanf("%d%d",&m,&n);
if(m>=1&&m<=500&&n>=1&&n<=500)//这儿表达式1<=m<=500&&1<=n<=500有问题吧,并且不能用while循环,改为分支语句if,要不然就死循环
{
if(m>n)
{ max=m;min=n;}
else
{ max=n;min=m;}
for(i=min;i<=max;i++){
if(prime(i))
{ count++;
sum=sum+i;}
}//少了个{},for循环的},
printf("sum=%d count=%d",sum,count);
} //少了个{},if分支语句的}
}

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

#include<stdio.h>
void main()
{
int m,n,i,count=0,sum=0,max,min;
int prime(int m);
printf("Input m,n:");
scanf("%d%d",&m,&n);
while(1<