为什么不能进行多组数据测试

#include <stdio.h>
int ret=1;
int isprime(int x);
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int i;
int cnt=0;
while(scanf("%d %d\n",&a,&b)!=EOF){
for(i=a;i<=b;i++){
if(isprime(i)){
cnt++;
}
}
printf("%d\n",cnt);
}
return 0;
}
int isprime(int x){
int i;
for(i=2;i<x-1;i++){
if(x%i==0){
ret=0;
break;
}
}
}

修改如下,供参考:

#include <stdio.h>
//int ret=1;
int isprime(int x);
int main()
{
    int a,b;
    //scanf("%d %d",&a,&b);
    int i;
    int cnt=0;
    while(scanf("%d %d",&a,&b)!=EOF){//while(scanf("%d %d\n",&a,&b)!=EOF){
                 cnt = 0;
                 for(i=a;i<=b;i++){
                     if(isprime(i)){
                              cnt++;
                     }
                 }
                 printf("%d\n",cnt);
    }
    return 0;
}
int isprime(int x){
    int i,ret=1;
    if(x<2) ret=0;
    for(i=2;i<x-1;i++){
           if(x%i==0){
                ret=0;
                break;
           }
    }
    return ret;
}