輸入在一行中給出2個4位正整數,的那個表示火車到達的和出發的時間。每個時間格式為2為小時數(00-23)和2位分鐘數(00-59)假設出發和到達在同一天內。這個程式怎么寫
uj5u.com熱心網友回復:
int sTime, eTime; 開始時間 和 到達時間
拆分出來小時和分鐘
int sH, sM, eH, eM;
sH = sTime / 100; sM = sTime % 100;
eH = eTime/100; eM = eTime%100;
if ( eM< sM ) {
用的分鐘數: eM+60-sM
用的小時數: eH-sH-1; // 被上分鐘哪兒借走了一小時
} else {
用的分鐘數: eM-sM;
用的小時數: eH-sH;
}
代碼自己寫吧, 也不知道你要求的輸出格式是什么
uj5u.com熱心網友回復:
這個能在具體點嗎 有點看不懂
uj5u.com熱心網友回復:
開始時間sTime 1220 拆開 sH=12(12小時), sM=20(20分鐘)
結束時間eTime 1404 拆開 eH=13, eM=04
em比sM小啊, 直接做減法不行, 所以要從小時那兒借來一個小時,也就是60分鐘, 變成 60+04 = 64 再減去20 ,就是44分鐘
然后eH-sH-1 就是14 - 12 -1 = 1
用時 1小時44分鐘
uj5u.com熱心網友回復:
拆開eTime1404,后eH=14哈自己算時間差也是這樣啊, 分鐘不夠減,借來一個小時唄, 一個小時是60分鐘
uj5u.com熱心網友回復:
你好 可以幫我看看這個程式嗎這個是這個題的答案有點看不懂
#include<stdio.h>
intmain()
{
intks,js,xs,fz;
scanf("%d%d",&ks,&js);
xs=js/100-ks/100;
fz=js%100-ks%100;
if(fz<0){xs=xs-1;fz=60+fz;}
printf("%02d:%02d",xs,fz);
return0;
}
uj5u.com熱心網友回復:
int main(){
intks,js,xs,fz;
scanf("%d%d",&ks,&js); // ks 開始時間, js結束時間
xs=js/100-ks/100; // js/100 提取的是到達時候是幾點, 1404到達, 1404/100 就是14;這是計算時差
fz=js%100-ks%100; // js%100是提取結束時間是幾分, 1404到達, 1404%100 就是4;這是計算分差
if(fz<0){xs=xs-1;fz=60+fz;} // 也是在判斷,分上做減法不足底情況;如果不足借來一小時不足
printf("%02d:%02d",xs, fz);
return0;
}
想法沒有什么差別
關鍵是你自己想明白, 不用計算機,你自己用腦袋怎么算的, 計算機實作的是你腦子里面都想法
不需要和別人的想法一樣, 只要你的想法對就可以
uj5u.com熱心網友回復:
嗯嗯 謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133577.html
標籤:C語言
上一篇:[C/C++] 輸入輸出檔案路徑時,關于單斜杠雙斜杠的困惑
下一篇:求解這道題!!!
