سلام!

در این پست، پاسخ تمرین های سری قبل قرار داده شده است.

سوال اول:

#include <iostream>

using namespace std;

bool ascending(int a, int b){
    return a > b; //returns true if a > b
}

bool descending(int a, int b){
    return a < b; //returns true if a < b
}

int compare(int a, int b, bool (*compare) (int, int) ){
    if (compare(a, b))
        return a;
    return b;
}

int main(){
    int a, b;
    cin >> a >> b;
    cout << compare(a, b, descending) << endl << compare(a, b, ascending) << endl;
    return 0;
}

سوال دوم:

#include <iostream>

using namespace std;

bool ascending(int a, int b){
    return a > b; //returns true if a > b
}

bool descending(int a, int b){
    return a < b; //returns true if a < b
}

void sort(int *ar, const int size, bool (*compare) (int, int) ){
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            if (!compare(ar[i], ar[j]))
                swap(ar[i], ar[j]);
}

int main(){
    int n;
    cin >> n;
    int *ar = new int[n];
    for (int i = 0; i < n; i++)
        cin >> ar[i];
    sort(ar, n, ascending);
    for (int i = 0; i < n; i++)
        cout << ar[i] << " " ;
    cout << endl;
    return 0;
}

موفق باشید!