Тема: 3 функції. Без використання операторів if і switch.
Попередня назва теми: Допоможіть вирішити помилку (С++).
Реалізувати 3 функції, кожна з яких приймає вказівник на динамічний масив дійсних чисел і кількість елементів масиву. Перша функція повертає мінімальний елемент масиву, друга – максимальний, третя – середнє арифметичне. У головній функції створіть масив з 3-х вказівників на ці функції. Додайте меню, в якому користувач може вибрати бажану операцію. Напишіть програму без використання операторів if і switch.
при такому кодi в 53 рядку видає помилку немає перетвореня int в int*
#include <iostream>
#include <time.h>
using namespace std;
int* add_end(int *ar, int &n, int num);
int* func3(int *ar, int n);
int* func2(int *ar, int n);
int* func1(int *ar, int n);
void set(int *ar, int n);
void print(int *ar, int n);
void main() {
setlocale(LC_ALL, "ru");
srand(time(0));
int n;
cout << "Введiть розмiр масиву: ";
cin >> n;
int* ar = new int[n];
set(ar, n);
print(ar, n);
int*(*p[3])(int*, int) = { func1,func2,func3 };
int choice;
cin >> choice;
int c = *p[choice - 1](ar, n);
cout << "Результат:" << c << "\n";
system("pause");
}
int* add_end(int *ar, int &n, int num) {
int* p = new int[n + 1];
for (int i = 0; i < n; i++) {
p [i] = ar [i];
}
p [n] = num;
delete[]ar;
n++;
return p;
}
int* func3(int *ar, int n) {
}
int* func2(int *ar, int n) {
}
int* func1(int *ar, int n) {
int* p = new int[0];
int b = 0;
int num = 0;
for (int i = 0; i < n; i++) {
b = 0;
for (int c = 1; c < ar[i]; c++) {
ar[i] % c == 0 ? (ar[i] >= 0 ? (b++) : (b = b)) : b = b;
}
num = ar[i];
b > 2 ? (ar = add_end(ar, n, num)) : (b = b);
}
delete[]ar;
return p;
}
void set(int *ar, int n) {
for (int i = 0; i < n; i++) {
*(ar + i) = rand() % 101 - 50;
}
}
void print(int *ar, int n) {
for (int i = 0; i < n; i++) {
cout << *(ar + i) << " ";
}
cout << "\n";
}