C语言上机题从键盘输入当前时间的时、分、秒值,输出过一秒后的时、分、秒值。

如题所述

算法:时分秒为60进制,遇60进1
代码:
#include <stdio.h>
int main()
{
int h,m,s;
printf("请输入时分秒(以:分开):\n");
scanf("%d:%d:%d",&h,&m,&s);
s = s + 1;
if (s == 60) {//60秒,分进1
s = 0;
m = m + 1;
if (m == 60) {//60分,时进1
h = h + 1;
}
}
printf("下一秒为:%02d:%02d:%02d", h, m, s);
;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-08
#include<stdio.h>
int main()
{
int h, m, s;
scanf("%d:%d:%d", &h, &m, &s);
//从秒开始依次处理进位的情况,采用24时制。这一行代码等价于下面注释中的代码。
((s = ++s % 60) == 0) && ((m = ++m % 60) == 0) && (h = ++h % 24);

/*s = s + 1;
if(s == 60)
{
s = 0;
m = m + 1;
if(m == 60)
{
m = 0;
h = h + 1;
if(h == 24)
{
h = 0;
}
}
}*/

printf("%02d:%02d:%02d", h, m, s);
sleep(100);
return 0;
}
第2个回答  2013-01-08
#include<stdio.h>
int main()
{
int h,m,s;
scanf("%d%d%d", &h, &m, &s);
if((s=++s%60)==0 && (m=++m%60)==0) h++;
printf("%02d:%02d:%02d\n", h, m, s);
return 0;
}
相似回答