作者mrhuangjt (無)
看板PLT
標題Re: [問題] C的基礎小問題~ 請幫忙~
時間Sun Nov 8 01:15:14 2009
※ 引述《wefgcv (green)》之銘言:
: 題目 : 計算兩個時間 (時:分:秒) 的間隔秒數
: (先說這不是作業 只是自我的小練習)
: 程式我已經寫好了 可是不太滿意 覺得程式寫的太落落長
: 所以想請問一下 有沒有更好的寫法 可以有同樣的功能 但程式很簡潔的呢??
: (第一次發問 不清楚在這版發問恰當與否 若不恰當請告知 我會自D的)
: 我的程式碼如下 :
: int h1, m1, s1, h2, m2, s2, h, m, s, t;
: printf("Please input first hour :");
: scanf("%d", &h1);
: printf("Please input first minute :");
: scanf("%d", &m1);
: printf("Please input first second :");
: scanf("%d", &s1);
: printf("\nPlease input second hour :");
: scanf("%d", &h2);
: printf("Please input second minute :");
: scanf("%d", &m2);
: printf("Please input second second :");
: scanf("%d", &s2);
: printf("\n第一個輸入時間為: %d時 : %d分 : %d秒\n", h1, m1, s1);
: printf("第二個輸入時間為: %d時 : %d分 : %d秒\n", h2, m2, s2);
: h = h1 - h2;
: m = m1 - m2;
: s = s1 - s2;
: h = abs(h);
: m = abs(m);
: s = abs(s);
: t = h * 3600 + m * 60 + s;
: printf("\n兩個時間間隔秒數為: %d\n", t);
前面輸入時間的語法應該可以這樣簡化:
printf("Please input first time:");
scanf("%d %d %d", &h1, &m1, &s1);
printf("\nPlease input second time:");
scanf("%d %d %d", &h2, &m2, &s2);
中間要減少行數的話,可以這樣寫:
h = abs(h1 - h2);
m = abs(m1 - m2);
s = abs(s1 - s2);
不過如果要讓程式碼更短的話,可以找看看Windows有沒有計算時間差距的API
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.150.17