我感觉没啥问题啊
#include <stdio.h>
int main(){
int time,minute;
scanf("%d %d",&time,&minute);
int h1=time/100;
int m1;
if(time<60){m1 =time;
}else{
m1 =time%100;}
while(minute<0){minute+=60;h1--
;}
int h2=minute/60;
int m2=minute%60;
int m= m1 +m2;
int h=h1+h2;
if(m>59){
h++;m-=60;
}
printf("%d%d",h,m);
return 0;
}
你错的原因是这里m=60的情况会输出0,
比如 输入520 40 输出应该600
但是你直接减60 输出的是60。
if(m>59){
h++;m-=60;
}
给你改好了:
#include <stdio.h>
int main()
{
int time,minute,flag=0;
scanf("%d %d",&time,&minute);
int h1=time/100;
int m1;
if(time<60)
{
m1 =time;
}
else
{
m1 =time%100;
}
while(minute<0)
{
minute+=60;
h1--;
}
int h2=minute/60;
int m2=minute%60;
int m= m1 +m2;
int h=h1+h2;
if(m>59)
{
h++;
m-=60;
if(m==0)
flag=1;
}
if(flag)
printf("%d0%d",h,m);
else
printf("%d%d",h,m);
return 0;
}
//520 40
将第一个值转成分钟数,然后加上第二个值,将结果再转成小时+分钟形式
你现在的处理太过于复杂了,没必要
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int h = a/100;
int m = a%100;
m += h*60 + b;
if(m < 0)
m += 1440;
h = m/60;
m -= h*60;
m = h*100+m;
printf("%d\n",m);
}