2016-12-01 11 views
-1

다음 코드를 가지고 있으며, 센티널 번호를 한 번만 입력 한 후 중단하고 싶지만 현재는 코드를 두 번 반복하여 센티널 번호를 입력해야합니다. 어떤 아이디어? 에C에서 센티널 루프 실행

#include <stdio.h>// Include a standard C Library 
#define Sentinel_Numb -1 
int main(){ 

    int ID[360];    
    float seconds[360]; 
    int i = 0; 

printf("please enter the ID and how many seconds to calculate enter -1 when done\n"); 

while (1)       
{ 
    scanf_s("%d",&ID[i]); 
    scanf_s("%f",&seconds[i]); 

    if(ID[i] == Sentinel_Numb || seconds[i] == Sentinel_Numb){ 
     break; 
     } 
    i++; 
} 

return 0; 
} 
+0

나는'가 i' 정의 어딘가에 초기화 같은데요? – yano

+0

컴파일하지 않음 ... "i"가 정의되지 않았습니다. – TonyB

+0

죄송합니다. 초기화하는 질문을 편집했습니다 – drez

답변

1

변경 :

scanf_s("%d",&ID[i]); 
if (ID[i] == Sentinel_Numb) 
    break; 
scanf_s("%f",&seconds[i]); 
if (seconds[i] == Sentinel_Numb) 
    break; 
0
while (1)       
{ 
    scanf_s("%d",&ID[i]); 

    if (ID[i] == Sentinel_Numb) 
     break; 

    scanf_s("%f", &seconds[i]); 

    if (seconds[i] == Sentinel_Numb) 
     break; 
    i++; 
}