2017-10-24 2 views
-1

나는 PM에서 AM으로 갈 때 프로그램이 올바른 답을 낼 수 있도록 혼란 스럽다.군사 시간의 차이 계산하기 C++

이 하나 정답 많이 있습니다
void timeTraveled(int startTime, int endTime) { 
    int min1 = (startTime/100) * 60 + (startTime % 100); 
    int min2 = (endTime/100) * 60 + (endTime % 100); 
    int ans1 = min2 - min1; 
    if (ans1 > 0) { 
     cout << "You have traveled " << ans1 << " minutes into the future!" << endl; 
    } 
    else { 
     int ans2 = abs(ans1) + 24; 
     cout << "You have traveled " << ans2 << " minutes into the future!" << endl; 
    } 
} 
+2

당신이에 여행을하지 않을까요을 여기에 대해 추론 할 수있는 더 간단한 방법은 아마도 시작 시간이 종료 시간보다 길면 과거가 – everyone

+0

생각해 볼 항목이 있습니다. end-start가 음수이면 2400을 추가하십시오. – AndyG

+1

@everyone : 다음날 그 시간이 될 것이라고 가정합니다. – AndyG

답변

0

, 그것보다 단지 프로그래밍 할 수있는 무엇보다 바로 수학을 받고 예를 들어 2300 1000에 여기에 내가 지금까지있는 것입니다.

void timeTraveled(int startTime, int endTime) { 
    if (endTime < startTime) { // Assume next day if endTime is before start time 
     endTime += 2400; 
    } 

    int min1 = (startTime/100) * 60 + (startTime % 100); 
    int min2 = (endTime/100) * 60 + (endTime % 100); 
    int ans1 = min2 - min1; 
    cout << "You have traveled " << ans1 << " minutes into the future!" << endl; 
} 

당신은, 그냥 거기에 몇 가지 간단한 오류 가까이 있었다 있었다 방법 :

void timeTraveled(int startTime, int endTime) { 
    int min1 = (startTime/100) * 60 + (startTime % 100); 
    int min2 = (endTime/100) * 60 + (endTime % 100); 
    int ans1 = min2 - min1; 
    if (ans1 > 0) { 
     cout << "You have traveled " << ans1 << " minutes into the future!" << endl; 
    } 
    else { // Assume next day 
     int ans2 = ans1 + (24 * 60); // Add 24 Hours worth of minutes 
     cout << "You have traveled " << ans2 << " minutes into the future!" << endl; 
    } 
} 
관련 문제