本題要求撰寫程式,以hh:mm:ss的格式輸出某給定時間再過n秒后的時間值(超過23:59:59就從0點開始計時)。
輸入格式:
輸入在第一行中以hh:mm:ss的格式給出起始時間,第二行給出整秒數n(<60)。
輸出格式:
輸出在一行中給出hh:mm:ss格式的結果時間。
輸入樣例:
11:59:40
30
輸出樣例:
12:00:10
代碼:
#include<stdio.h>
int main(){
int h,m,s;
int n;
int sum=0;
scanf("%d:%d:%d",&h,&m,&s);
scanf("%d",&n);
sum=s+n;
if(sum>=60){
sum=sum-60;
m++;
if(m==60){
m=m-60;
h++;
if(h==24){
h=0;
}
}
}
printf("%02d:%02d:%02d",h,m,sum);
return 0;
}
uj5u.com熱心網友回復:
使用time_t型別相加就行,不用這么麻煩uj5u.com熱心網友回復:
#include<stdio.h>
int main()
{
int h, m, s, n, sum=0, carry;
scanf("%d:%d:%d", &h, &m, &s);
scanf("%d", &n);
sum = s+n;
// if ( sum >= 60 ) { //處理秒
carry = sum/60;
sum = sum%60;
m += carry;
// if ( m >= 60 ) { //處理分
carry = m/60;
m = m%10;
h = (h+carry) % 24;
// }
// }
printf("%02d:%02d:%02d",h,m,sum);
return 0;
}
其實,所有的 if 陳述句都可以不要。
uj5u.com熱心網友回復:
#include<stdio.h>
int main()
{
int h,m,s;
int n;
int sum=0;
scanf("%d:%d:%d",&h,&m,&s);
scanf("%d",&n);
sum = s+n;
m += sum / 60;
sum %= 60;
h += m / 60;
m %= 60;
h %= 24;
#if 0
if(sum>=60){
sum=sum-60;
m++;
if(m==60){
m=m-60;
h++;
if(h==24){
h=0;
}
}
}
#endif
printf("%02d:%02d:%02d\n",h,m,sum);
return 0;
}
供參考~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39501.html
標籤:C語言
上一篇:qpainter繪制區域求助
