1242 - C语言10.12
时间限制 : 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)