0
点赞
收藏
分享

微信扫一扫

C语言解题 || 牛牛的时钟

题目:

描述

牛牛在午夜12点(0点0分0秒)正在思考,在 t 秒之后是什么时间。他思考了 n 次这个问题。

输入描述:

第一行输入一个正整数 n。

第二行输入 n 个正整数 t ,表示 t 秒之后。    

输出描述:

输出 n 行,每行输出 t 秒之后的时间。

例:

//输入
4
60 61 1 2
  
//输出
0 1 0//表示60秒之后是0点1分0秒
0 2 1//表示再过61秒之后是0点2分1秒
0 2 2//...
0 2 4

实现思想:

因为输入的是秒数,所以我们将所有数据都存到秒中。

然后进循环,秒数每至60,分数+1,秒数-60,以此类推。

代码实现:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <assert.h>
#include <malloc.h>

int main()
{
	int n = 0;
	int* p = NULL;
	int i = 0;
	int hour = 0;
	int minute = 0;
	int second = 0;

	scanf("%d", &n);

	p = (int*)calloc(n, sizeof(int));

	if (p == NULL)
	{
		perror("calloc");
		return 1;
	}

	//输入
	for (i = 0; i < n; i++)
	{
		scanf("%d", p + i);
	}

	//计算
	for (i = 0; i < n; i++)
	{
		second += *(p + i);

		while (second >= 60)
		{
			second -= 60;
			minute++;
		}
		while (minute >= 60)
		{
			minute -= 60;
			hour++;
		}

		printf("%d %d %d\n", hour, minute, second);
	}

	free(p);
	p = NULL;

	return 0;
}

运行结果:

C语言解题 || 牛牛的时钟_循环

举报

相关推荐

0 条评论