2012-08-15 3 views
0

나는 입력 된 ID에서 사용자 잔액을 얻는 간단한 프로그램을 만들고 있습니다. listof_ID 배열에서 ID가 입력 될 때 for 루프가 실행되지 않는 어떤 이유 :for for 루프가 실행되지 않는 이유는 무엇입니까?

#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    int cntr; 
    int ID; 

    int listof_ID[] = {001, 002, 003, 004, 005}; 
    float listof_BAL[] = {338.90, 745.87, 897.32, 665.36, 102.45}; 

    puts("**Check Your Balance** \n"); 
    printf("**Please Enter Your ID >> "); 
    scanf("%d", &ID); 
    for(cntr = 0; cntr > 5; cntr++) 
    { 
     if(ID == listof_ID[cntr]) 
     { 
      puts("Your balance is "); 
      printf("%.2f", listof_BAL[cntr]); 
      break; 
     } 
    } 

    return 0; 
} 
+5

cntr> 5는 0으로 초기화되기 때문에 발생하지 않습니다. – squiguy

+5

8 진 리터럴을 사용하여'listof_ID []'를 초기화한다는 것을 알고 있습니까? 이 경우에는 문제가되지 않지만 여전히이 사실을 모르는 것처럼 보입니다. –

+0

@EdS. 나는 그것이 사실인지 아닌지 확실하지 않았다. 왜냐하면 그 숫자가 평범한 것이 아니라 2 개의 0으로 시작 되었기 때문이다. – TheZ

답변

7
for(cntr = 0; cntr > 5; cntr++) 

는 조건 cntr > 5 해당

for(cntr = 0; cntr < 5; cntr++) 

루프 실행 중에있을 것이다. cntr0에서 시작하면 분명히 5보다 크지 않으므로 루프 본문이 실행되지 않습니다.

0

for 루프에서 cntr = 0의 첫 번째 값은 cntr <입니다. 5. 그러나 조건에서 cntr> 5인지 확인합니다. 이는 사실이 아닙니다. 따라서 루프가 시작되지 않습니다.

관련 문제