

Preview text:
D:\OOP\Practice area\Funtion poiter\Practice1.cpp 1 #include #include #include #define MAX 300 using namespace std; bool asc(int a, int b); bool dsc(int a, int b);
void Intersort(int* arr, int n, bool (*compare)(int, int));
void swap(int& a, int& b);
void Input(int* a, int& n); void Output(int* a, int n); int main() { int a[MAX]; int n; Input(a, n);
cout << "This is ascending: "; Intersort(a, n, asc); Output(a, n);
cout << "This is decending: "; Intersort(a, n, dsc); Output(a, n); return 0; } bool asc(int a, int b) { return a < b; } bool dsc(int a, int b) { return a > b; }
void Intersort(int* arr, int n, bool (*compare)(int, int)) { int i, j, min; for (i = 0; i < n - 1; i++) { min = i; for (j = i + 1; j < n; j++) { if (compare(arr[j], arr[min])) { min = j; }
D:\OOP\Practice area\Funtion poiter\Practice1.cpp 2 } swap(arr[min], arr[i]); } }
void swap(int& a, int& b) { int temp = a; a = b; b = temp; } void Input(int* a, int& n) { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; } void Output(int* a, int n) { for (int i = 0; i < n; i++)
cout << a[i] << " "; cout << endl; }