一朋友让我帮她用C语言写个倒计时的程序,说是老师布置的作业。现在将代码和大家分享,有相同需求的同学可以参考。下面我先大体说一下写这个程序的思路。
在整个程序中,时间始终以“秒”为单位存储,但显示的时候是以标准时间格式来显示的(该程序中用函数display实现转换)。在一开始输入倒计时开始的时间时,用标准的时间格式输入(当然也可以不太标准,比如秒数或分钟大于59),程序接收到用户的输入后随即将其转化为秒数,而倒计时中秒数的减少就是该秒数的自减。程序代码如下:
#include
int countSecond(int,int,int) ; void display(int) ;
main() {
int hour = 0, minute = 0, second =0 ;
printf(\倒计时 ***************************\\n\\n\ printf(\请输入时间(格式:时 分 秒 <中间以空格隔开,没有则输入\\\):\\n\ scanf(\
int c = countSeconds(hour,minute,second) ; //计算总秒数,用变量c保存剩余时间 int start = c ; //保存开始时间 while(c >= 0) {
system(\
printf(\ printf(\开始时间:\
display(start) ; //显示开始时间 printf(\剩余时间:\ display(c) ; //显示剩余时间 if(c == 0)
{//剩余时间为0,时间到 printf(\ 时间到!!!\ getch() ; }
Sleep(1000) ; //延迟1秒 c-- ; //总秒数自减一 } }
//将时分秒转化为总秒数
int countSeconds(int hour,int minute,int second) {
return hour*3600 + minute*60 + second ; }
//将总秒数以标准时间格式输出 void display(int c) {
int h = 0, m = 0, s = c ;
//将秒数转化为小时,六十进制的分钟和秒 while(s >=60) {
m = m + (s / 60) ; s = s % 60 ; }
while(m >= 60) {
h = h + (m / 60) ; m = m % 60 ; }
printf(\}
程序运行效果: