注意,第二个数字表示的分钟数可能超过60,也可能是负数
#include <stdio.h>
int main()
{ int a,b,c=0,d=0,e=0;
scanf("%d %d", &a, &b);
if(b>=60)
{c=b/60;d=b%60;e=a%100+d;
if(e>=60) a=(a/100+(c+e/60))*100+e%60;
else a=(a/100+c)*100+d;}
else if(b>=0) a=(a/100+(a%100+b)/60)*100+(a%100+b)%60;
else if(b<=-60)
{c=b/60;d=b%60;e=a%100+d;
if(e<0)a=(a/100+(c+e/60)-1)*100+60+e;
else a=(a/100+(c+e/60))*100+e;
}
else if(b>-60) a=(a/100+(a%100+b)/60)*100+(a%100+b)%60;
printf("%d", a);
return 0;
}
上面有助理解,下面有一快捷方法
1 #include <stdio.h> 2 int main() 3 { 4 int a,b; 5 scanf("%d %d",&a,&b); 6 if(b>=0) 7 { 8 printf("%d",(a/100+(b+a%100)/60)*100+((b+a%100)%60)); 9 } 10 else 11 { 12 printf("%d",(a/100*60+a%100+b)/60*100+(a/100*60+a%100+b)%60); 13 }
return 0; 14 }