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,共經過多少時間。
程式碼:
#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);
}

結果:

留言

熱門文章