0

私は C プログラムを作成して、1 日の時刻を 24 時間形式で表す値と、正または負の同様の形式で期間を取得します。このプログラムは、期間の後の 24 時間の時間を計算する必要があります (つまり、開始 + 期間 = 終了)。たとえば、1345 と 345 は 1730 を出力します。

ただし、不適切な入力を処理する方法がわかりません。たとえば、2372 や 2520 などの値は使用できません。同様に、(たとえば) 100 と -200 がある場合、出力として -100 ではなく 2300 を取得する必要があります。つまり、最初の 2 つの数値は 24 を法とする必要があり、最後の 2 つの数値は 60 を法とする必要があることはわかっていますが、これらの操作を入力に適用する方法がわかりません。これを行う方法について誰かヒントを提供できますか?

4

1 に答える 1

0

入力を として読み取り、int分を時間から分離し、両方をチェックします。

int tm, h, m, is_negative = 0;
scanf("%d", &tm);

if (tm < 0) {
    is_negative = 1;
    tm = -tm;
}

m = tm % 100; // separates the two last digits
h = tm / 100; // excludes the two last digits

if (m > 59) {
    handle_error();
}

if (h > 23) {
    handle_error();
}
于 2012-10-24T05:15:07.513 に答える