1242 - C语言10.12

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

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

题目输入

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

题目输出

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

请注意行尾输出换行。

输入/输出样例

输入格式

5 9

输出格式

9 5 14

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;
}

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);
}

Java解答



import java.util.Scanner;

public class Main{
   private static Scanner s = new Scanner(System.in) ;
   
   public static void main(String[] args) {
	 int a = s.nextInt() ;
	 int b = s.nextInt() ;
	 int temp = 0 ;
	 if(a<b){
		 temp = a ;
		 a = b ;
		 b = temp ;
	 }
	 
	 System.out.println(a+" "+b+" "+(a+b)) ;
   }
}

Python解答

a = [int(i) for i in raw_input().split()]
print max(a),min(a),sum(a)