#include
int main(void)
{
int N,A,B,i,X,j,count_a=0,count_b=0,k,flag_a=0,flag_b=0; //A表示離相應測試數據最近的素數,B表示測試數據與A之間的距離
printf("請輸入需要測試的數據組數: ");
scanf("%d",&N);
for(i=1;i<=N;i++)
{
printf("請輸入測試數據: ");
scanf("%d",&X);
for(j=X;j>1;j--) //向A的左側尋找素數
{
for(i=2;i<j;i++)
{
if(j%i==0) {if(j<X) count_a++;break;}
if((i==(j-1))&&(j%i!=0)){flag_a=1; count_a++;break;}
}
if(flag_a==1) break;
}
for(k=X;;k++) //向A的右側尋找素數
{
for(i=2;i<k;i++)
{
if(k%i==0) {if(k>X) count_b++;break;}
if((i==(k-1))&&(k%i!=0)) {flag_b=1;count_b++;break;}
}
if(flag_b==1) break;
}
if(count_a==count_b) {B=count_a;A=j;printf("%d,%d a\n",A,B);}
else if((j==X)&&(k==X)) {B=0;A=X;printf("%d,%d b\n",A,B);}
else if(count_a>count_b) {B=count_b;A=k;printf("%d %d c\n",A,B);}
else if(count_a<count_b) {B=count_a;A=j;printf("%d %d d\n",A,B);}
}
}
這個程序無論N等於幾,都只能輸入一組測試數據,為什麼最外側for循環不運行??求解!!
我覺得是變量i在不同循環內重復使用,導致外層循環的條件i<=N判斷失效