Тема: Проблема із функцією
Це має бути типу менюшки. Проблема в тому, що 2 та 3 пункт менє не працює, і я не розумію чому.
Header.h
#pragma once
#include<iostream>
using namespace std;
struct my_array {
int size;
int* data;
};
void input(my_array&);
void random(my_array&);
void geometry_average_odd(my_array&);
void riznuca_miz_2_max(my_array&);
Main1
#include"Header.h"
void main() {
srand(time(0));
my_array m;
m.data = 0; m.size = 0;
void(*my_commands[]) (my_array&) = { input, random, geometry_average_odd, riznuca_miz_2_max };
int user_choice = 0;
while (true) {
system("cls");
cout << "Oberit potribny vam diu: " << endl;
cout << "0 - Vvesty massuv" << endl;
cout << "1 - randomni chysla v massuv" << endl;
cout << "2 - znaytu geometrychny riznucy" << endl;
cout << "3 - riznuca miz dvoma naybilshymy elementamu" << endl;
cout << "4 - exit" << endl;
cin >> user_choice;
if (user_choice == 4) {
break;
}
if (user_choice >= 0 && user_choice < 4) {
my_commands[user_choice](m);
}
}
}
Main2
#include"Header.h"
void input(my_array& a) {
if (a.data != 0) {
delete[] a.data;
}
cout << "Vvedit kilkist elementiv massuvy: ";
cin >> a.size;
a.data = new int[a.size];
for (int i = 0; i < a.size; i++) {
cin >> a.data[i];
}
cout << "Massuv zapovneno!" << endl;
system("pause");
}
void random(my_array& a) {
if (a.data != 0) {
delete[] a.data;
}
a.data = new int[a.size];
cout << "Vvedit kilkist elementiv massuvy: ";
cin >> a.size;
cout << "Vvedit diapazon massuvy: ";
int a1, a2;
cin >> a1 >> a2;
for (int i = 0; i < a.size; i++) {
a.data[i] = rand() % (a2 - a1 + 1) + a1;
}
cout << "Massuv zapovneno!" << endl;
system("pause");
}
void geometry_average_odd(my_array& a) {
cout << "Viidiidid";
int geometryarr = 1;
for (int i = 0; i < a.size; i++) {
if (a.data[i] % 2 == 0) {
}
else {
geometryarr *= a.data[i];
}
}
cout << "Seredne geometrychne elementiv massuvy: " << geometryarr << endl;
}
void riznuca_miz_2_max(my_array& a) {
if (a.data == 0) {
cout << "Spochatky vvedit massuv!";
}
a.data = new int[a.size];
int max = 0, max1 = 0;
for (int j = 0; j < a.size; j++) {
if (a.data[j] > max) {
max = a.data[j];
}
for (int i = 0; i < a.size; i++) {
if (a.data[i] > max1) {
if (max = max1) {
return;
}
else {
max1 = a.data[i];
}
}
}
}
int riznuca = 0;
if (max > max1) {
riznuca = max - max1;
}
else if (max < max1) {
riznuca = max1 - max;
}
cout << "Riznuca miz dvoma maxim elementamu = " << riznuca << endl;
}