任意の期間の起床時間と就寝時刻から睡眠時間を分単位で表示するプログラムを作っているのですが、合計時間がどうも合いません。以下のプログラムをどのように改善すればよいか教えていただきたいです。
C
1#include <stdio.h> 2int main() 3{ 4 int n,d; //日、条件 5 int h,m; //睡眠時刻 h:m 6 int H,M; //起床時刻 H:M 7 int sum,ave; //合計時間、平均時間 8 9 printf("何日分の睡眠時間を記録しますか?\n"); 10 scanf("%d",&n); 11 printf("%d日分の睡眠記録を集計します。\n",n); 12 printf("睡眠時間を次の例のように入力してください。\n"); 13 printf("22:24 5:09\n\n"); 14 sum=0; 15 for(d=1; d<=n; d++) 16 { 17 scanf("%d:%d %d:%d", &h, &m,&H, &M); 18 if(m>M) 19 { 20 sum = sum+(H+23-h)*60+(M+60-m); 21 } 22 else if(m<=M) 23 { 24 sum = sum+(H+24-h)*60+(m-M); 25 } 26 } 27 ave = sum/n; 28 printf("睡眠時間の合計は%d分、1日の平均睡眠時間は%d分です。\n",sum,ave); 29 30return 0; 31} 32
回答3件
あなたの回答
tips
プレビュー