函数(1)

顺序与选择部分题目参考代码

7-2 然后是几点 (10 分)
有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。
输入格式:
输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。
输出格式:
输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例:
1120 110
输出样例:
1310

#include
#include
int main(void)
{
	int time;				// 当前时间
	int pass;				// 流逝的分钟数

	scanf("%d", &time);
	scanf("%d", &pass);

	int hour, minute;

	/* 将当前时间切分成小时分钟表示,前两位表示小时,后两位表示分钟 */
	hour = time / 100;
	minute = time % 100;

	if (pass >= 0)					// 流逝的分钟数不小于0
	{
		minute += pass;				// 分钟数=当前分钟数+流逝的分钟数
		hour += (minute / 60);		// 原来小时数加上流逝的小时数
		minute %= 60;				// 分钟数更新
	}
	else
	{
		minute += pass;				// 原来的分钟数加上负的流逝分钟数
		hour -= (abs(minute) / 60); // 小时数减去流逝的小时数,仍然还有余下分钟数未换算
		minute = abs(minute) % 60;	// 余下的未换算的分钟数
		hour--;						// 再新取一个小时把余下的分钟数换算掉
		minute = 60 - minute;		// 新的分钟数
	}

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

	return 0;
}

九思重新写一遍

函数题目

7-2 寻找自守数 (10 分)

所谓自守数(也称守形数),是指其平方数的低位部分恰为该数本身的自然数。 例如:25 2 =625,因此25是自守数。(注:0 和 1
也算自守数。)

请编写程序,输出指定范围内的所有自守数。若指定范围内不存在自守数,则输出None。

输入格式

正整数 a 和 b, 且 a≤b≤10000

输出格式

若 [a,b] 内存在自守数,则按由小到大的顺序输出,每行输出一个自守数;若不存在自守数,则输出None。

输入样例1

10 80

输出样例1

25
76

输入样例2

400 600

输出样例2

None

7-3 比较整数大小

输入两个整数,要求输出其中值较大者。要求用函数来找到大数。

输入样例:

1 3

输出样例:

3

7-4找出4个整数的最大数

输入4个整数,编写程序找出其中最大的数。用函数的嵌套调用来处理。

数组题目

8-1计算最大值出现的次数 (8 分)

计算一维数组中最大值出现的次数。

输入格式:

输入在一行n( n<=1000,代表数组的大小),在下一行中输入 n个整数,为一维数组的元素。

输出格式:

输出最大值和出现的次数。

输入样例:

在这里给出一组输入。例如:

4

4 2 2 4

输出样例:
在这里给出相应的输出。例如:

4 2

8-2

你可能感兴趣的:(C语言,c++)