C語言習題
題目:
(a)建立結構time,包含hour、minutes、second,hour、minutes為int型態,後者為double。
(b)宣告結構time型態變數start,初始值為{12,32,25.49}
(c)宣告結構time型態變數end,初始值為{15,12,17.53}
(d)以hh:mm:ss.ss型態印出
(e)從start到end,共經過多少時間。
程式碼:
結果:
(a)建立結構time,包含hour、minutes、second,hour、minutes為int型態,後者為double。
(b)宣告結構time型態變數start,初始值為{12,32,25.49}
(c)宣告結構time型態變數end,初始值為{15,12,17.53}
(d)以hh:mm:ss.ss型態印出
(e)從start到end,共經過多少時間。
程式碼:
#include <stdio.h> #include <stdlib.h> typedef struct time{ int hour; int minutes; double second; } times; void display(times ); void sub(times ,times ); int main(void){ times start={12,32,25.49}; times end={15,12,17.53}; display(start); display(end); sub(start,end); system("pause"); return 0; } void display(times x){ printf("%d小時%d分%2.2f秒\n",x.hour,x.minutes,x.second); } void sub(times s,times e){ times elaspe={0,0,0.0}; if(s.second>e.second) /* 計算秒 */ { elaspe.second=60+e.second-s.second; elaspe.minutes--; } else elaspe.second=e.second-s.second; if(s.minutes>e.minutes) /* 計算分 */ { elaspe.minutes+=60+e.minutes-s.minutes; elaspe.hour--; } else elaspe.minutes+=e.minutes-s.minutes; elaspe.hour+=e.hour-s.hour; /* 計算時 */ display(elaspe); }
結果:
留言
張貼留言