Files
IT-Step/task3.cpp
2025-10-02 20:32:57 +03:00

70 lines
1.7 KiB
C++

#include <iostream>
using namespace std;
void Pos(int* a, int n) {
int count = 0;
for (int i = 0; i < 3 && i < n; ++i)
if (a[i] > 0) ++count;
cout << "The number of the first 3 elements > 0: " << count << endl;
}
void Show1(int* a, int n) {
cout << "The last 3 elements: ";
for (int i = (n >= 3 ? n - 3 : 0); i < n; ++i)
cout << a[i] << " ";
cout << endl;
}
void Show2(int* a, int n) {
int* b = new int[n];
for (int i = 0; i < n; ++i) b[i] = a[i];
for (int i = 0; i < n-1; ++i)
for (int j = i+1; j < n; ++j)
if (b[i] > b[j]) { int t = b[i]; b[i] = b[j]; b[j] = t; }
cout << "The three smallest elements: ";
for (int i = 0; i < 3 && i < n; ++i) cout << b[i] << " ";
cout << endl;
delete[] b;
}
typedef void (*searchFunc)(int*, int);
void service(int* a, int n, searchFunc f) {
f(a, n);
}
int main() {
srand(time(NULL));
int n;
cout << "n(n>=3)= ";
cin >> n;
if (n < 3) {
cerr << "Error: size Array!!";
return 1;
}
int* arr = new int[n];
for (int i = 0; i < n; ++i)
arr[i] = rand() % 41 - 20;
cout << "Array: ";
for (int i = 0; i < n; ++i) cout << arr[i] << " ";
cout << endl;
searchFunc arrFunc[3] = { Pos, Show1, Show2 };
cout << "Menu:\n"
<< "1) The number of the first 3 elements > 0\n"
<< "2) Show the last 3 items\n"
<< "3) Display the 3 smallest elements\n"
<< "Select an action (1-3): ";
int choice;
cin >> choice;
if (choice >= 1 && choice <= 3)
service(arr, n, arrFunc[choice-1]);
else
cout << "Incorrect choice!\n";
delete[] arr;
return 0;
}