2016-11-04 1 views
0

사용자가 입력을 완료 할 때를 선택하여 "int finish"를 초기화하길 원합니다. 그러나 루프가이를 우회합니다. 내가 루프 동안 수행하는 동안을 시도했지만 그것은 그것을하지 않습니다 나루프가 완료되지 않습니다

char snails[8][11]; 

int count; 
int finish; 
do 
{ 
    for (count = 0; count < 8; count++) 
    { 
     printf("Enter the snail's name:"); 
     scanf("%10s", &snails[count]); 
     int timea; 
     int timeb; 
     int timec; 
     int timed; 

     printf("Enter %s 's time for the first leg:", snails[count]); 
     scanf("%d", &timea); 
     printf("Enter %s 's time for the second leg:", snails[count]); 
     scanf("%d", &timeb); 

     printf("Enter %s 's time for the third leg:", snails[count]); 
     scanf("%d", &timec); 
     printf("Enter %s 's time for the fourth leg:", snails[count]); 
     scanf("%d", &timed); 

     int timef = timea + timeb + timec + timed; 

     int time1 = timef/60; 
     int time2 = timef % 60; 

     printf("%s finished in %d minutes and %d seconds \n", snails[count], time1, time2); 
     printf("Type 1 if you have finished inputting or 0 if you have not:"); 
     scanf("%d", &finish); 
    } 


} while (finish == 0); 


return 0; 

} 당신의 의도는 그들이 완료 표시하지 않는 한, 8 번 루프를 실행하는 경우

+1

가 Nitpick 완료 묻는 때 1 입력 '는 scanf ("%의 10S"및 달팽이 [카운트])'(달팽이 [카운트, "%의 10S")'scanf와이어야한다. – haccks

+0

'do'-whilewhile 루프가 끝날 때까지 조건을 검사하지 않기 때문에. 'for <8 && finish! = 0'를'for' 루프의 조건으로 사용하고'do'-'while'을 제거하십시오. –

+0

덕분에 && finish == 0을 "count <8"로 추가해야했습니다. –

답변

0

:

1. do while 루프를 제거하십시오. 의

2.Do 다음 중 하나를

if (finish == 1) break; 

다음은 for 루프를 실행합니다 : for 루프에서

count < 8 && finish != 1 

또는 휴식 :로 룩의 조건을 변경 까지 중 하나를

  • 그것을하지 8 배
  • 또는