Другие языки программирования и технологии

Напишите программу, пожалуйста! На Си (не С++)

Напишите программу, которая использует шаблон функции для нахождения суммы максимального и минимального значения из трех аргументов. Проверьте программу, используя тройки целых чисел, чисел с плавающей точкой и символов.
Шаблоны функций бывают только в С++ и выглядят как-то так.. .

#include <iostream>
#include <string>

using namespace std;

template <typename> T maximum(const T, const T, const T);

int main() {

    int a = 7, b = -12, c = 3;
    double x = 2.75, y = 8.34, z = 1.902;
    char k = '&', l = '#', m = '$';
    string s1("Hello"), s2("String"), s3("Drive");

    cout << "int -> " << maximum(a, b, c) << endl;
    cout << "double -> " << maximum(x, y, z) << endl;
    cout << "char -> " << maximum(k, l, m) << endl;
    cout << "string -> " << maximum(s1, s2, s3) << endl;

    cin.get(); cin.get();
    return 0;
}

template <typename> T maximum(const T a, const T b, const T c) {
    return (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
}

В си приходится заниматься перегрузкой функций.. .

#include <stdio.h>
#include <conio.h>

double maximum(double, double, double);
int maximum(int, int, int);
char maximum(char, char, char);

int main() {

    int a = 7, b = -12, c = 3;
    double x = 2.75, y = 8.34, z = 1.92;
    char k = '$', l = '#', m = '&';        

    printf("Int_max = %d\n", maximum(a, b, c));
    printf("Double_max = %.2f\n", maximum(x, y, z));
    printf("Char_max = %c\n", maximum(k, l, m));

    _getch();
    return 0;

}
double maximum(double a, double b, double c) {
    return (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
}
int maximum(int a, int b, int c) {
    return (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
}
char maximum(char a, char b, char c) {
    return (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
}

А шаблон можно написать, используя макрос.. .

#include <stdio.h>
#include <conio.h>

#define maximum(a, b, c) (((a) > (b)) ? ((a) > (c)) ? (a) : (c) : ((b) > (c)) ? (b) : (c))

int main() {

    int a = 7, b = -12, c = 3;
    double x = 2.75, y = 8.34, z = 1.92;
    char k = '$', l = '#', m = '&';    

    printf("Int_max = %d\n", maximum(a, b, c));
    printf("Double_max = %.2f\n", maximum(x, y, z));
    printf("Char_max = %c\n", maximum(k, l, m));

    _getch();
    return 0;

}
Иван Ткаченко
Иван Ткаченко
92 795
Лучший ответ
C Sharp