#A1435. 指针练习:MyMax
指针练习:MyMax
题目描述
编写一个 MyMax函数,可以用来求任何数组中的最大值,使得程序按要求输出。
#include <bits/stdc++.h>
using namespace std;
// 在此处补充你的代码,补充整个函数,可多行
void * MyMax( _______ ) {
   ___________
}
int Compare1(void * n1, void * n2) {
    int * p1 = (int * )n1;
    int * p2 = (int * )n2;
    return ((*p1) % 10) - ((*p2) % 10);
}
int Compare2(void * n1, void * n2) {
    int * p1 = (int * )n1;
    int * p2 = (int * )n2;
    return *p1 - *p2;
}
#define eps 1e-6
int	Compare3(void * n1, void * n2) {
    float * p1 = (float * )n1;
    float * p2 = (float * )n2;
    if( * p1 - * p2 > eps)
        return 1;
    else if(* p2 - * p1 > eps)
        return -1;
    else
        return 0;
}
int main() {
    int t;
    int a[10];
    float d[10];
    cin >> t;
    while(t--) {
        int n;
        cin >> n;
        for(int i = 0; i < n; ++i)
            cin >> a[i];
        for(int i = 0; i < n; ++i)
            cin >> d[i];
        int * p = (int *) MyMax(a, sizeof(int), n, Compare1);
        cout << * p << endl;
        p = (int *) MyMax(a, sizeof(int), n, Compare2);
        cout << * p << endl;
        float * pd = (float * )MyMax(d, sizeof(float), n, Compare3);
        cout << * pd << endl;
    }
    return 0;
}
输入格式
第一行是测试数据组数。
对每组数据:
第一行是整数。
第2行是个整数。
第3行是个浮点数。
输出格式
对每组数据:
先输出个整数中个位数最大的数(答案保证唯一)。
再输出个整数中最大的数。
再输出个浮点数中最大的数。
2
5
31 20 100 7 8
30.1 100.2 2.5 9.8 48.4
2
1 2
0.1 0.2
8
100
100.2
2
2
0.2