2017-12-10 6 views
-1

私はこの問題をC++で抱えています。これは、基本的にHH:MMという形式の現在時刻をユーザーに求め、同じ形式の待ち時間をユーザーに求めます。その後、プログラムは完了時刻を表示する必要があります。とにかく、私はこの問題のために以下のコードで見ることができる2つの関数を使用する必要があります。私は最初の関数の値を他の関数に使うことはできないようです。もしあなたがどんなやり方で助けても大変感謝しています。事前にC++で完了時間を表示

#include <iostream> 
using namespace std; 

void input (int& hours24, int& minutes24) { 
    char tacke; 
    do{ 
     cout << "Current time: "; 
     cin >> hours24 >> tacke >> minutes24; 
    }while ((hours24<0 || hours24>=24) || (minutes24<0 || minutes24>60)); 
} 

void output (int hours, int minutes){ 
    char tacke2; 
    int MIN, h, min; 
    do{ 
     cout << "Waiting time: "; 
     cin >> hours >>tacke2 >> minutes; 
    }while ((hours<0 || hours>=24) || (minutes<0 || minutes>60)); 
    MIN=hours24*60+minutes24+hours*60+minutes; 
    h=MIN/60; 
    min=MIN%60; 
    if(h>=24){ 
     h=h-24; 
     cout << "Completion time is in the day following the start time.\n"; 
    } 
    cout << "Completion time: "<< h << ":" << min; 
} 
int main() { 
int h1, min1, h2, min2, MIN, h, min; 
char c, tacke, tacke2; 
do{ 
input (0, 0); 
output (0, 0); 
cin >> c; 
}while(c=='Y' || c=='y'); 
return 0; 
} 

ありがとう: は、ここでは、コードです!

void input (int& hours24, int& minutes24) {...} 

しかしmainに、あなたがそれ(および出力機能)を呼び出して渡す2つのリテラル:outputでさらに

input (0, 0); 
output (0, 0); 

+0

入力の例、予想される出力、代わりに得られるものを表示できますか? –

+0

https://imgur.com/a/9oY9z ここに入力と出力のサンプルがあります。プログラムがコンパイルされないため、出力を表示できません。 – BigShaq

+0

同じ名前の変数は使用しないでください。違いは大文字のみです。混乱とエラーが発生しやすいコードになる –

答えて

0

ご入力関数は、2つの変数表す時間と分への参照を受け入れます

void output (int hours, int minutes) { 
    ... 
    do { 
     // Here you are overwriting the values passed 
     cin >> hours >> ... >> minutes; 
    } while ((hours<0 || hours>=24) || (minutes<0 || minutes>60)); 
    // Then you use hours24 and minutes24 that are not declared nor visible here 
    MIN = hours24*60 + minutes24 + hours*60 + minutes; 
    ... 
} 

代わりに、このような何かを行うことができます:outputは値を受け取り、計算のみと印刷を行います

int main() 
{ 
    int hours_current = 0, minutes_current = 0, hours_waiting = 0, minutes_waiting = 0; 
    ... 
    input(hours_current, minutes_current); 
    input(hours_waiting, minutes_waiting); 
    ... 
    output(hours_current, minutes_current, hours_waiting, minutes_waiting); 
    ... 
} 

void output (int h1, int m1, int h2, int m2) { 
    ... 
    int MIN = h1*60 + m1 + h2*60 + m2; 
    ... 
} 
関連する問題