程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-程序設定好的循環沒有運行!WHY?

c語言-程序設定好的循環沒有運行!WHY?

編輯:編程綜合問答
程序設定好的循環沒有運行!WHY?

#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判斷失效

u014632633
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved