2013-06-27 41 views
-1

我在C之前學習了Objective-C,現在我要回到C了,我不明白爲什麼printf()在循環內部不起作用?有人能勸我嗎?爲什麼printf在我的程序中不能正常工作(嘗試刷新)

該計劃是Skiena和Revilla編寫的「編程挑戰」一書中的第一項挑戰,如果有人想知道。

#include <stdio.h> 
#include <stdbool.h> 

static int inputInt; 
static int secondInt; 
int returnCycleNumber(int givenNumber); 

int returnCycleNumber(int givenNumber) { 
    bool initial = true; 
    int counter = 1; 

    do 
    { 
     if (givenNumber % 2 != 0) 
     { 
      givenNumber = givenNumber * 3 + 1; 
      counter = counter + 1; 

      printf("\n%i", givenNumber); 
     } 
     else 
     { 
      givenNumber = givenNumber/2; 
      counter = counter + 1; 

      printf("\n%i", givenNumber); 
     } 

     if (givenNumber == 1) { 
      initial = false; 
     } 

    } while (initial == true && givenNumber > 1); 

    return counter; 
} 

int main(int argc, const char * argv[]) 
{ 
    scanf("%i %i", &inputInt, &secondInt); 
    fflush(stdout); 

    int arrayCount[secondInt]; 

    for (int counter = 0; counter == (secondInt - inputInt); counter++) { 
     arrayCount[counter] = returnCycleNumber(inputInt + counter); 
    } 

    printf("\n%i", arrayCount[1]); 


    return 0; 
} 
+2

我懷疑,如果你使用一個調試器,並通過它加強你會看到什麼問題了。 –

回答

3
counter == (secondInt - inputInt) 

你想要的!=或<

+0

該死的我只花了這麼長時間看一切,但那:( –

0

試試這個

for (int counter = 0; counter < (secondInt - inputInt); counter++) { 
相關問題