计算两时间的差值(顺序、选择)
时间限制1s
内存限制128MB
题目描述
给定两个时间,计算两个时间的差值。
输入
给定的第一个时间一定比第二个时间大
#include"stdio.h"
int main() {
int h1, h2, h3, m1, m2, m3, s1, s2, s3;
scanf("%d:%d:%d", &h1, &m1, &s1);
scanf("%d:%d:%d", &h2, &m2, &s2);
if (h1 ==h2) {
if (m1 ==m2) h3 = 0, m3 = 0, s3 = s1 - s2;
else if (s1 >= s2) h3 = 0, m3 = m1 - m2, s3 = s1 - s2;
else if (s1 < s2) h3 = 0, m3 = m1 - m2 - 1, s3 = 60 + s1 - s2;
} else {
if (s1 >= s2) {
s3 = s1 - s2;
if (m1 >= m2) m3 = m1 - m2, h3 = h1 - h2;
else m3 = m1 + 60 - m2, h3 = h1 - 1 - h2;
} else {
s3 = s1 + 60 - s2;
m3 = m1 - m2 - 1;
if (m3 >= 0) h3 = h1 - h2;
else h3 = h1 - h2 - 1;
}
}
printf("%d:%d:%d", h3, m3, s3);
return 0;
}
//当发现if满足条件却不执行时候,大概率是条件出现了问题,例如判别是否相等==用成了赋值号=
#include"stdio.h"
int main() {
int h1, h2, h3, m1, m2, m3, s1, s2, s3;
scanf("%d:%d:%d", &h1, &m1, &s1);
scanf("%d:%d:%d", &h2, &m2, &s2);
if (h1 == h2) {
if (m1 ==m2) {h3 = 0; m3 = 0;s3 = s1 - s2;}
else if (s1 >= s2) {h3 = 0; m3 = m1 - m2;s3 = s1 - s2;}
else {h3 = 0;m3 = m1 - m2 - 1; s3 = 60 + s1 - s2;}
}
else if (s1 >= s2) {
s3 = s1 - s2;
if (m1 >= m2) {m3 = m1 - m2; h3 = h1 - h2;}
else {m3 = m1 + 60 - m2; h3 = h1 - 1 - h2;}
}
else {
s3 = s1 + 60 - s2;
m3 = m1 - m2 - 1;
if (m3 >= 0) h3 = h1 - h2;
else {m3=m1-m2+60;h3 = h1-h2-1;}
}
printf("%d:%d:%d", h3, m3, s3);
return 0;
}