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