2013-06-27 2 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++) { 
관련 문제