实验9-2 时间换算(15 分) 本题要求编写程序,以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> #include<string.h> //思路一:因为时间的进位情况比较清晰,可以使用分支语句进行处理,分别判断增加后的秒数是不是大于等于60,以及 // 分钟上面是不是大于等于59,以及小时上面是不是大于等于23 //思路二:使用结构体,依次判断秒、分、时,是否需要进位 /* //思路一 int main() { int i, num_ss, temp; //num_ss为输入的秒 int hh, mm, ss; scanf("%d:%d:%d\n",&hh,&mm,&ss); scanf("%d\n", &num_ss); ss += num_ss; if (ss >= 60 && mm < 59) { ss -= 60; mm += 1; hh = hh; } if (ss >= 60 && mm >= 59 && hh <23) { ss -= 60; mm = 0; hh += 1; } if (ss >= 60 && mm >= 59 && hh >= 23) { ss -= 60; mm = 0; hh = 0; } printf("%02d:%02d:%02d\n",hh,mm,ss); //注意:输出格式的控制为两位 return 0; } */ //思路二 struct time { int hh, mm, ss; }; int main() { struct time x; //定义时间结构体变量 x scanf("%d:%d:%d", &x.hh, &x.mm, &x.ss); int num_ss; scanf("%d", &num_ss); x.ss += num_ss; if (x.ss >= 60) //判断秒 是否需要进位 { x.ss -= 60; x.mm++; } if (x.mm >= 60) //判断分 是否需要进位 { x.mm -= 60; x.hh++; } if (x.hh >= 24) //判断时是 否需要进位 { x.hh -= 24; } printf("%02d:%02d:%02d", x.hh, x.mm, x.ss); return 0; }
实验9-2 时间换算(15 分)
猜你喜欢
转载自blog.csdn.net/AA11224488/article/details/80342635
今日推荐
周排行