游客 Signup | Login
中文 | En

1242 - C语言10.12

读入两个整数a和b,找出二者的较大值、较小值以及两数之和。请使用函数指针作为函数参数的方式实现,即通过函数指针在同一个函数中实现不同的功能。

Input

两个用空格隔开的整数a和b。

Output

a和b中较大的值、较小的值以及两数之和,用空格隔开。

请注意行尾输出换行。

Examples

Input

5 9

Output

9 5 14

Solution C

#include<stdio.h>
void fun(int *p, int *q)
{
	int x,y;
	x=*p>*q?*p:*q;
	y=*p<*q?*p:*q;
	printf("%d %d %d\n",x,y,*p+*q);

}
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	fun(&a,&b);
	return 0;
}

Solution C++

#include <stdio.h>
int main() {
	int max(int, int);
	int min(int, int);
	int add(int, int);
	int proc(int, int, int(*func)(int, int));
	int a, b;
	scanf("%d %d", &a, &b);
	printf("%d %d %d\n", proc(a, b, max), proc(a, b, min), proc(a, b, add));
	return 0;
}
int max(int x, int y) {
	if (x > y)
		return x;
	else
		return y;
}
int min(int x, int y) {
	if (x < y)
		return x;
	else
		return y;
}
int add(int x, int y) {
	return x + y;
}
int proc(int x, int y, int(*func)(int, int)) {
	return (*func)(x, y);
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题