2014-10-15 3 views
0

오류는 인쇄 루프보다 한 자릿수 이상 스캔하는 경우입니다. 루프 다음에 예제 코드가 있습니다. 왜 그런지 알겠습니까?scanf 및 printf 루프 출력량이 다른 경우

int main(int argc, char *argv[]) { 

     //Throw error is *Argv[] is not an integer 
     //assuming it was an integer 
     int cnt = (int)(argv[1][0] - '0'); 
     printf("number is %d\n", cnt); 
     // 
     printf("Enter %i integer values to place in tree:\n", cnt); 
     for (i1 = 0; i1 < cnt; ++i1) { 
       scanf("%d\n", &elemArray[i1]); 
     } 

     //first ouput "INput Values" 

     for (i2 = 0; i2 < cnt; ++i2) { 
       printf("%d\n", elemArray[i2]); 
     } 

     //Build tree with each element 
     return 0; 
} 

OUPUT은 다음과 같습니다

Enter 5 integer values to place in tree: 
1 
2 
3 
4 
5 
6 
1 
2 
3 
4 
5 
+0

으로 변경되어야했습니다. 몇 번이나 번호를 물어 보았습니까? –

+0

6 번 @ 마틴 제임스. 그것은 & elemArray의 주소로 뭔가를 시도했지만 그렇지 않았습니다. – arrowinfedex

+0

나는 그것을 이해했다. 그것은 'scanf ("% d \ n", & elemArray [i1]);' 'scanf ("% d", & elemArray [i1]);' – arrowinfedex

답변

0

내가 그것을 알아 냈어. 그것은 scanf("%d\n", &elemArray[i1]); scanf("%d", &elemArray[i1]);

+0

굉장합니다. 나는 그 때 나의 대답을 제거 할 것이다. – Hatjhie