2013-05-24 3 views
0

다음 알고리즘에 문제가 있습니다.이 문제를 해결하기 위해 수행해야 할 작업 연도가 윤년이 아니면 입력하십시오. 입력 한 연도가 윤년이 될 때까지 다시 입력해야합니다.조건이 충족 될 때까지 테스트하는 방법은 무엇입니까?

int year = 0;   
    BOOL yearC; 

    NSLog(@"Enter the year to be tested;"); 
    scanf ("%i", &year); 
    yearC = ((year % 4 == 0 && year % 100 !=0)|| year % 400 == 0); 
    if (yearC ) 
      NSLog (@"It's a leap year."); 
    else 
    { 
     NSLog (@"Nope, it's not a leap year."); 
     scanf ("%i", &year);  
    } 
} 
+0

while 루프를 사용 해본 적이 있습니까? – gasparuff

+0

while 루프를 사용하여 할당 문제를 해결하십시오. –

+0

루프를 사용합니다. 이 경우 "while"이 트릭을해야합니다. ;-) 절대로 포기하지 말고 계속해서 개선하십시오! :) –

답변

3

당신은 while loop 사용할 수있는 코드를 넣고 당신을 위해 작동합니다 :) 그냥 시작 값을 설정

을 yearC가 YES로 설정 될 때까지 yearC는 그 동안 블록을 반복하기위한

(윤년)
BOOL yearC = NO; 

while(!yearC){ 
    NSLog(@"Enter the year to be tested;"); 
    scanf ("%i", &year); 
    yearC = ((year % 4 == 0 && year % 100 !=0)|| year % 400 == 0); 
    if (yearC) 
     NSLog (@"It's a leap year."); 
    else { 
     NSLog (@"Nope, it's not a leap year."); 
    } 
} 
+2

Aaaaand : 숙제 완료. –

관련 문제