fork download
  1.  
  2. /* 田中 C言語 演習3 */
  3.  
  4. #include <stdio.h>
  5.  
  6. /* main関数の定義 */
  7. int main(void)
  8. {
  9. int a, b; //自然数a,b
  10. int a1, a2, b1, b2; //自然数a,bにおける「時」と「分」
  11. int tomorrow(int A1,int A2, int B1, int B2); //bが翌日の時刻の場合に使用する関数
  12. int x, y; //解答 x=時間、y=分
  13.  
  14.  
  15. /* 自然数a,b(時刻)の標準入力 */
  16. printf("時刻を入力してください。(24時間表記で、0から2400の範囲内)\n");
  17. scanf("%d", &a);
  18.  
  19. printf("時刻を入力してください。(24時間表記で、0から2400の範囲内)\n");
  20. scanf("%d", &b);
  21.  
  22. /* 自然数a,b(時刻)を「時」と「分」に分割 */
  23. a1 = a / 100;
  24. a2 = a - a1 * 100;
  25. b1 = b / 100;
  26. b2 = b - b1 * 100;
  27.  
  28.  
  29. /* 入力した時刻の確認 */
  30. printf("%d時%d分と%d時%d分が入力した時刻です。\n", a1, a2, b1, b2);
  31.  
  32.  
  33. /* bが翌日の時刻であるか判断を行い、当日同士の場合に時間差を計算 */
  34. if(b1 < a1){
  35. tomorrow (a1, a2, b1, b2);
  36. }
  37. else if(a1 == b1 && b2 < a2){
  38. tomorrow (a1, a2, b1, b2);
  39. }
  40. else{
  41. x = b1 - a1;
  42. y = b2 - a2;
  43. if(a2 > b2){
  44. x -= 1; //分の計算で繰り下げが発生する場合の対応
  45. y += 60; //分の計算で繰り下げが発生する場合の対応
  46. }
  47. printf("時刻の差は%d時間%d分です。\n", x, y);
  48. }
  49.  
  50. return 0;
  51. }
  52.  
  53. /* b<a(bが翌日の時刻を表す)の場合の計算 */
  54. int tomorrow (int A1,int A2, int B1, int B2)
  55. {
  56. int x, y; //解答 x=時間、y=分
  57. printf("%d時%d分は翌日の時刻として扱います。\n", B1, B2);
  58. x = (24 - A1) + B1;
  59. y = (60 - A2) + B2;
  60. if(A2 > B2) //分の計算で繰り下げが発生する場合の対応
  61. x -= 1;
  62. printf("時刻の差は%d時間%d分です。\n", x, y);
  63. return 0;
  64. }
Success #stdin #stdout 0s 5320KB
stdin
1322
412
stdout
時刻を入力してください。(24時間表記で、0から2400の範囲内)
時刻を入力してください。(24時間表記で、0から2400の範囲内)
13時22分と4時12分が入力した時刻です。
4時12分は翌日の時刻として扱います。
時刻の差は14時間50分です。