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. if( a1 < 0 || a1 > 24 || b1 < 0 || b1 > 24 || a2 < 0 || a2 > 60 || b2 < 0 || b2 > 60){
  29. printf("正しく時刻を入力してください\n");
  30. return 1;
  31. }
  32.  
  33.  
  34. /* 入力した時刻の確認 */
  35. printf("%d時%d分と%d時%d分が入力した時刻です。\n", a1, a2, b1, b2);
  36.  
  37.  
  38. /* bが翌日の時刻であるか判断を行い、当日同士の場合に時間差を計算 */
  39. if(b1 < a1) {
  40. printf("%d時%d分は翌日の時刻として扱います。\n", b1, b2);
  41. b1 += 24;
  42. }
  43. else if(a1 == b1 && b2 < a2){
  44. printf("%d時%d分は翌日の時刻として扱います。\n", b1, b2);
  45. b1 += 24;
  46. }
  47. x = b1 - a1;
  48. y = b2 - a2;
  49. if(a2 > b2){
  50. x -= 1; //分の計算で繰り下げが発生する場合の対応
  51. y += 60; //分の計算で繰り下げが発生する場合の対応
  52. }
  53. printf("時刻の差は%d時間%d分です。\n", x, y);
  54.  
  55. return 0;
  56. }
Success #stdin #stdout 0s 5324KB
stdin
1350
1413
stdout
時刻を入力してください。(24時間表記で、0から2400の範囲内)
時刻を入力してください。(24時間表記で、0から2400の範囲内)
13時50分と14時13分が入力した時刻です。
時刻の差は0時間23分です。