首页 > 试题广场 >

小乐乐定闹钟

[编程题]小乐乐定闹钟
  • 热度指数:66082 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)


输入描述:

输入现在的时刻以及要睡的时长k(单位:minute),中间用空格分开。

输入格式:hour:minute k(如hour或minute的值为1,输入为1,而不是01)

(0 ≤ hour ≤ 23,0 ≤ minute ≤ 59,1 ≤ k ≤ 109)



输出描述:
对于每组输入,输出闹钟应该设定的时刻,输出格式为标准时刻表示法(即时和分都是由两位表示,位数不够用前导0补齐)。
示例1

输入

0:0 100

输出

01:40
示例2

输入

1:0 200

输出

04:20
#include <stdio.h>

int main() {
    int hour, min, k;
    scanf("%d:%d %d", &hour, &min, &k);
    int num = k / 60;
    int minute = (k + min) - num * 60;
    printf("%02d:%d", num+hour, minute);
    return 0;
}
发表于 2024-12-07 12:56:33 回复(0)
小乐乐真能睡一万分钟吗
发表于 2024-11-26 21:19:12 回复(0)
int main()
{
    int a,b,c;
    scanf("%d:%d%d",&a,&b,&c);
    int d=c/60;
    int e=c%60;
    a=a+d;
    b=b+e;
    if(b>59)
    {
        b=b%60;
    }
    if(a>23)
    {
        a=a%24;
    }
    printf("%02d:%02d",a,b);
    return 0;
}

这道题输入23:59和10000时答案不应该是21:39吗,为什么给出的答案却是22:59
发表于 2024-10-17 23:12:27 回复(0)
#include <stdio.h>

int main() {
    int h,m,t,n=0;
    scanf("%d:%d %d",&h,&m,&t);
    t+=m;
    while(t>60)//计算分钟数
    {
        t-=60;
        n++;
    }
    m=t;
    h=n+h;
    while(h>24)//计算小时数
    {
        h-=24;
    }
    printf("%02d:%02d",h,m);//%02d表示2个字符宽度,不足用0补齐,%35d表示35个字符宽度,不足用空格补齐
    return 0;
}
发表于 2024-10-14 20:19:16 回复(0)
#include <stdio.h>

int main() {
    int hour, minute, time;
    scanf("%d:%d %d", &hour, &minute, &time);
    hour = time / 60 + hour;
    minute = time % 60 + minute;
    
    int h = 0;
    if (minute > 60) {
        h = minute / 60;
        minute %= 60;
    }

    hour = hour + h;

    while (hour > 24) {
        hour %= 24;
    }

    printf("%02d:%02d", hour, minute);

    return 0;
}

发表于 2024-08-18 10:38:27 回复(0)
#include <stdio.h>

int main()
{
    int h,m,t=0;
    scanf("%d:%d %d",&h,&m,&t);
    printf("%02d:%02d",(h+(m+t)/60)%24,(m+t)%60);
    return 0;
}
发表于 2024-08-12 13:14:20 回复(0)
#include <stdio.h>
int main(void)
{
    int a,b,c;
    scanf("%d:%d %d",&a,&b,&c);
    a=a+(b+c)/60;
    b=(b+c)%60;
    if(a>=24)
    {
        a=a%24;
        printf("%02d:%02d\n",a,b);
    }
    else
        printf("%02d:%02d\n",a,b);
    return 0;
}

发表于 2024-07-29 20:54:56 回复(0)
#include <stdio.h>

int main() {
    int h,m,k;
    scanf("%d:%d %d",&h,&m,&k);

    int hh=k/60;
    int mm=k%60;

    h=(h+hh)%24;
    h+=((m+mm)/60);
    m=(m+mm)%60;

    printf("%02d:%02d\n",h,m);
    return 0;
}

发表于 2024-06-30 10:18:35 回复(0)
#include <stdio.h>

int main() {
    int hour, minute, k;
    char c;
    scanf("%d%c%d %d", &hour, &c, &minute, &k);
    int minute_result1 = minute + k % 60;
    int hour_result = hour + k / 60;
    int minute_result = 0; // 初始化minute_result为0

    if (minute_result1 > 59) {
        minute_result = minute_result1 % 60;
        hour_result = hour + k / 60 + minute_result1 / 60;

        if (hour_result > 23) {
            hour_result = hour_result % 24;
        }
    }
    else {
        minute_result = minute_result1; // 当minute_result1小于等于59时,直接赋值给minute_result
    }

    if (hour_result > 23) {
        hour_result = hour_result % 24;
    }

    printf("%02d%c%02d\n", hour_result, c, minute_result);
    return 0;
}
我是真的蠢了
发表于 2024-06-06 21:38:05 回复(0)
#include <stdio.h>
int main() {
    int h,m,k;
    scanf("%d:%d %d", &h, &m, &k);
   
while(k>=60)
{
    k=k-60;
    h++;

}
m=m+k;
while(m>=60)
{
    m=m%60;
    h++;
}
if(h>24)
{
    h=h%24;
}
printf("%02d:%02d", h, m);

    return 0;
}
发表于 2024-05-31 15:28:23 回复(0)
#include <stdio.h>

int main() {
    int hour = 0;
    int min = 0;
    int k = 0;
    scanf("%d:%d %d",&hour,&min,&k);
    min = min + k;
    while(min>60){
        min = min - 60;
        hour ++;
        if(hour > 23){
            hour = hour - 24;
        }
    }
    if(hour < 10 && min < 10){
        printf("0%d:0%d",hour,min);
    }
    if(hour < 10 && min >= 10){
        printf("0%d:%d",hour,min);
    }
    if(hour >= 10 && min < 10){
        printf("%d:0%d",hour,min);
    }
    if(hour >= 10 && min >= 10){
        printf("%d:%d",hour,min);
    }
    return 0;
}

发表于 2024-05-10 16:50:23 回复(0)
#include <stdio.h>

int main() {
    int h, m, k;

    // 注意这里要有一个空格,以分隔小时和分钟
    scanf("%d:%d %d", &h, &m, &k);

    // 分离出k中的完整小时数和剩余的分钟数
    int aH = k / 60;
    int aM = k % 60;

    // 加上额外的分钟数
    m += aM;

    // 检查是否溢出
    if (m >= 60) {
        // 溢出则增加小时数
        aH++;
        // 修正分钟数
        m -= 60;
    }

    // 加上额外的小时数
    h += aH;

    // 处理小时数可能超过24的情况
    h = h % 24;

    // 使用%02d来确保小时和分钟都是两位数
    printf("%02d:%02d\n", h, m);

    return 0;
}
发表于 2024-04-22 17:49:45 回复(0)
#include <stdio.h>

int main() {
    int a, b, c;
    scanf("%d:%d%d", &a, &b, &c);

   
    if (b+c>=60)
    {
        int ret = (b+c)/60;
        int aa = a+ret;
        if (aa <=24)
        {
            printf("%02d:%02d", aa,(b+c)%60);
        }
        else {
       
            printf("%02d:%02d", aa%24, (b+c)%60);
       
        }
    }
    return 0;
}
编辑于 2024-04-21 23:53:29 回复(1)
此题是一步一步想出的,并一步一步优化
#include <stdio.h>

int main()
{
	int hour = 0, minute = 0, k = 0;
	scanf("%d:%d %d", &hour, &minute, &k);

	//c语言怎么表示9*10^9
	//1.调用库函数pow,pow可以表示任何X的Y次方;pow(X,Y)= X ^ Y
	//							//注意的是X和Y必须是浮点型!!!
	//2.m e n 其中 m 代表几十,n 代表几次方
	if (hour >= 0 && hour <= 23 && minute >= 0 && minute <= 59 && k >= 1 && k <= 9e+9)
	{
		hour = (hour+(k+minute) / 60) % 24;
		//超出24小时的情况

		//改良方程,不用考虑分钟溢出的情况了
		minute = (k + minute) % 60;
		/*if (minute >= 60)
		{
			hour++;
			minute -= 60;
		}*/
		printf("%02d:%02d", hour, minute);
	}
	return 0;
}


发表于 2024-03-29 12:05:26 回复(0)
#include <stdio.h>

int main() {
    int hour, minute, k;
    scanf("%02d:%02d %d",&hour,&minute,&k);
    printf("%02d:%02d",(k / 60 + hour) % 24 + (k % 60 + minute) / 60,(k % 60 + minute) % 60);
    return 0;
}
编辑于 2024-03-18 18:36:54 回复(0)
#include <stdio.h>

int main() 
{
    int h, m, k;

    scanf("%d:%d %d", &h, &m, &k);

    printf("%02d:%02d\n", ((k + m) / 60 + h) % 24, (k + m) % 60);

    return 0;
}

编辑于 2024-03-02 20:58:27 回复(0)
#include <stdio.h>

int main() {
    int k,hour,minute=0;
    scanf("%d:%d",&hour,&minute);
    scanf("%d",&k);
    hour+=k/60;
    minute+=k%60;
    if(minute>=60){
        minute-=60;
        hour+=1;
    }
    while(hour>24){
        hour-=24;
    }
    printf("%02d:%02d",hour,minute);
    return 0;
}

发表于 2024-02-04 10:43:37 回复(0)
#include <stdio.h>

int main()
{
    int hour, minute, k;
    scanf("%d:%d %d", &hour, &minute, &k);//输入

    hour += k / 60;//增加小时
    minute += k % 60;//增加分钟
    if(minute > 59)//如果分钟大于59,将分钟调整为0~59,并将小时加1。
    {
        minute -= 60;
        hour++;
    }
    while(hour > 23)//如果小时大于23,将小时调整为0~23。
    {
        hour -= 24;
    }
    
    printf("%02d:%02d", hour, minute);//输出
    return 0;
}

发表于 2024-01-27 19:34:53 回复(0)