user-0 提问: 7-76 然后是几点 (20分) 

回复:
user: user-0
content: 引用 9 楼 user-3的回复:这种还是把时间化成0点起分钟数，加减分钟数，再化回去比较简单。 还可以吧，我的代码不算太复杂，

user: user-0
content: 引用 8 楼 user-3的回复:[quote=引用 6 楼 maggielve 的回复:][quote=引用 4 楼 user-3的回复:]好吧， num2若是负的，大概率m1就是负的； m+=m1;以后，m是负的咋办？ 起始时间和流逝的时间是同一天的时间[/quote]  喏， 1010，十点十分 -110= -1小时，-50分钟 该是是820啊，哪里不是同一天了？[/quote] 就算这样，我的代码也对啊？

user: user-1
content: 引用 10 楼 maggielve 的回复:[quote=引用 8 楼 user-3的回复:][quote=引用 6 楼 maggielve 的回复:][quote=引用 4 楼 user-3的回复:]好吧， num2若是负的，大概率m1就是负的； m+=m1;以后，m是负的咋办？ 起始时间和流逝的时间是同一天的时间[/quote]  喏， 1010，十点十分 -110= -1小时，-50分钟 该是是820啊，哪里不是同一天了？[/quote] 就算这样，我的代码也对啊？[/quote] 楼主的代码还是有问题的，不然不会三个测试点只通过了一个。 输入2359  001 ,应该得到 000 或2400 ，楼主的代码结果是2360 。 输入900   -1 ，应该是859 ，楼主的代码结果是899。

user: user-0
content: 还是你厉害[face]monkey2.gif[/face]

user: user-2
content: 引用 5 楼 maggielve 的回复:[quote=引用 3 楼 自信男孩的回复:]#include <stdio.h> #include <stdlib.h>  int main() {     int num1, num2, sign = 0;     scanf("%d %d",&num1,&num2);      int h = num1/100;     int m = num1%100;      if (num2 < 0) {         sign = 1;         num2 = abs(num2);     }     int h1 = num2/60;     //int m1 = num2 - h1*60;     int m1 = num2 % 60;       if (sign) {         if (m - m1 < 0) {             m = m + 60 - m1;             h1 += 1;         } else {             m -= m1;         }          if (h - h1 < 0)             h = h + 24 - h1;         else             h = h - h1;     } else {         if (m + m1 > 60) {             h =  (h + h1 + 1) % 24;             m = (m + m1) % 60;         } else {             m = (m + m1) % 60;             h = (h + h1) % 24;         }     }      if( h*100+m >= 0 && h*100+m < 100 )         printf("%03d",h*100+m);     else         printf("%d",h*100+m);       /*     h += h1;     m += m1;     if( m > 60 )     {         h++;         m -= 60;     }     if( h*100+m >= 0 && h*100+m < 100 )         printf("%03d",h*100+m);     else         printf("%d",h*100+m);     */     return 0; } 供参考～ 你又成功的把这一道简单题给弄麻烦了[/quote]  看来我不止一次把简单问题搞复杂了。我记性不好，要不一一罗列一下，至少大于2个吧

user: user-3
content: 这种还是把时间化成0点起分钟数，加减分钟数，再化回去比较简单。

user: user-3
content: 引用 6 楼 maggielve 的回复:[quote=引用 4 楼 user-3的回复:]好吧， num2若是负的，大概率m1就是负的； m+=m1;以后，m是负的咋办？ 起始时间和流逝的时间是同一天的时间[/quote]  喏， 1010，十点十分 -110= -1小时，-50分钟 该是是820啊，哪里不是同一天了？

user: user-1
content: 供参考：#include "stdio.h" int main(int argc, char* argv[]) {  	int num1, num2; 	scanf("%d %d",&num1,&num2); 	 	int h  = num1/100; 	int m  = num1%100; 	int h1 = num2/60; 	int m1 = num2%60;    //num2 - h1*60;  	h += h1; 	m += m1;         if(m<0){                 h--;                 m += 60;         } 	if( m > 59 ){        //if( m > 60 ) 		h++; 		m -= 60; 	}         if(h<0)  h += 24;   //超过一天的处理         if(h>=24)h -= 24; 	if( h*100+m >= 0 && h*100+m < 100 ) 		printf("%03d",h*100+m); 	else 		printf("%d",h*100+m);  	return 0; }

user: user-0
content: 引用 4 楼 user-3的回复:好吧， num2若是负的，大概率m1就是负的； m+=m1;以后，m是负的咋办？ 起始时间和流逝的时间是同一天的时间

user: user-0
content: 引用 3 楼 自信男孩的回复:#include <stdio.h> #include <stdlib.h>  int main() {     int num1, num2, sign = 0;     scanf("%d %d",&num1,&num2);      int h = num1/100;     int m = num1%100;      if (num2 < 0) {         sign = 1;         num2 = abs(num2);     }     int h1 = num2/60;     //int m1 = num2 - h1*60;     int m1 = num2 % 60;       if (sign) {         if (m - m1 < 0) {             m = m + 60 - m1;             h1 += 1;         } else {             m -= m1;         }          if (h - h1 < 0)             h = h + 24 - h1;         else             h = h - h1;     } else {         if (m + m1 > 60) {             h =  (h + h1 + 1) % 24;             m = (m + m1) % 60;         } else {             m = (m + m1) % 60;             h = (h + h1) % 24;         }     }      if( h*100+m >= 0 && h*100+m < 100 )         printf("%03d",h*100+m);     else         printf("%d",h*100+m);       /*     h += h1;     m += m1;     if( m > 60 )     {         h++;         m -= 60;     }     if( h*100+m >= 0 && h*100+m < 100 )         printf("%03d",h*100+m);     else         printf("%d",h*100+m);     */     return 0; } 供参考～ 你又成功的把这一道简单题给弄麻烦了

user: user-3
content: 好吧， num2若是负的，大概率m1就是负的； m+=m1;以后，m是负的咋办？

user: user-2
content: #include <stdio.h> #include <stdlib.h>  int main() {     int num1, num2, sign = 0;     scanf("%d %d",&num1,&num2);      int h = num1/100;     int m = num1%100;      if (num2 < 0) {         sign = 1;         num2 = abs(num2);     }     int h1 = num2/60;     //int m1 = num2 - h1*60;     int m1 = num2 % 60;       if (sign) {         if (m - m1 < 0) {             m = m + 60 - m1;             h1 += 1;         } else {             m -= m1;         }          if (h - h1 < 0)             h = h + 24 - h1;         else             h = h - h1;     } else {         if (m + m1 > 60) {             h =  (h + h1 + 1) % 24;             m = (m + m1) % 60;         } else {             m = (m + m1) % 60;             h = (h + h1) % 24;         }     }      if( h*100+m >= 0 && h*100+m < 100 )         printf("%03d",h*100+m);     else         printf("%d",h*100+m);       /*     h += h1;     m += m1;     if( m > 60 )     {         h++;         m -= 60;     }     if( h*100+m >= 0 && h*100+m < 100 )         printf("%03d",h*100+m);     else         printf("%d",h*100+m);     */     return 0; } 供参考～

user: user-0
content: 我考虑了啊？

user: user-3
content: 题目里说，流逝的分钟数有可能是负值，楼主你似乎没有考虑。