C/C++

C++ слишком много значений инициализатора.

В строке int choose(massive[0], massive[1], massive[2]); на втором элементе массива пишет "слишком много значений инициализатора"





Вот полный код:

#include <iostream>
using namespace std;

int choose(int massive1, int massive2, int massive3);

int main() {
setlocale(LC_ALL, "RU");
int massive[4]{};

cout << "Введите значения в массив по порядку: " << endl;
cin >> massive[0];
cout << endl;
cin >> massive[1];
cout << endl;
cin >> massive[2];
cout << endl;

cout << "Список действий : 1 - сложить; 2 - вычитать; 3 - Найти максимальное число; 4 - Найти минимальное число;" << endl;
int choose(massive[0], massive[1], massive[2]);
return 0;
}




int choose(int massive1, int massive2, int massive3) {

int *a = new int;
cin >> *a;
// Вывод суммы элементов массива.
if (*a == 1) {
cout << massive1 + massive2 + massive3;
}

// Вывод разности элементов массива.
if (*a == 2) {
cout << massive1 + massive2 + massive3;
}

//вывод максимального элемента массива по значению.
if (*a == 3) {
int *number = new int;
*number = 0;
if (*number < massive1) {
*number = massive1;
}
if (*number < massive2) {
*number = massive2;
}
if (*number < massive3) {
*number = massive3;
}
cout << number;
delete number;
}

//Вывод минимального элемента массива по значению.
if (*a == 3) {
int* number = new int;
*number = 999999999;
if (*number > massive1) {
*number = massive1;
}
if (*number > massive2) {
*number = massive2;
}
if (*number > massive3) {
*number = massive3;
}
cout << number;
delete number;
}
delete a;
}
Это чё?
int choose(massive[0], massive[1], massive[2]);

Вызов функции выглядит так: F(); и усе без всяких типов в начале.
ВС
Виктор Соколов
68 133
Лучший ответ
Влас Красновский Cпасибо, буду знать.
Влас Красновский Чел. ты гений.
Влас Красновский Это помогло, ахринеть.
Влас Красновский Я просто новичок)
 #include  

using namespace std;

size_t input_array_length(const char* msg = "Введите размер массива: ");
void fill_array(int* box, const size_t length);
int* create_array(const size_t length);
int* destroy_array(int* box);
int sum(int* box, size_t length);
int sub(int* box, size_t length);
int max(int* box, size_t length);
int min(int* box, size_t length);
void result(const char* msg, const int value);
void operations(int* box, const size_t length);

int main() {
system("chcp 1251 > nul");
const auto length = input_array_length();
auto box = create_array(length);
if (box != nullptr) {
operations(box, length);
} else {
puts("Не удалось выделить память под массив данных!");
}
box = destroy_array(box);
puts("Программа завершена!");
system("pause > nul");
}

size_t input_array_length(const char* msg) {
size_t length = 0;
while (!length) {
cout > length;
cin.ignore(0x1000, '\n');
}
return length;
}

void fill_array(int* box, const size_t length) {
cout > box[i];
}
}

int* create_array(const size_t length) {
auto box = new(nothrow) int[length];
if (box != nullptr) {
fill_array(box, length);
}
return box;
}

int* destroy_array(int* box) {
if (box != nullptr) {
delete[] box;
box = nullptr;
}
return box;
}

int sum(int* box, size_t length) {
auto result = 0;
for (size_t i = 0; i < length; ++i) {
result += box[i];
}
return result;
}

int sub(int* box, size_t length) {
auto result = 0;
for (size_t i = 0; i < length; ++i) {
result -= box[i];
}
return result;
}

int max(int* box, size_t length) {
auto result = box[0];
for (size_t i = 1; i < length; ++i) {
if (result < box[i]) {
result = box[i];
}
}
return result;
}

int min(int* box, size_t length) {
auto result = box[0];
for (size_t i = 1; i < length; ++i) {
if (box[i] < result) {
result = box[i];
}
}
return result;
}

void result(const char* msg, const int value) {
cout choice;
switch (Action(choice)) {
case Action::Addition:
result("Сумма: ", sum(box, length));
break;
case Action::Subtraction:
result("Разность: ", sub(box, length));
break;
case Action::Minimum:
result("Минимальный: ", min(box, length));
break;
case Action::Maximum:
result("Максимальный: ", max(box, length));
break;
case Action::Exit:
return;
default:
puts("Ошибка при выборе пункта меню!");
}
}
}
int choose(massive[0], massive[1], massive[2]);
вместо вызова функции вы объявили новую переменную choose типа int и пытаетесь ее проинициализировать сразу тремя значениями, о чем и пишет компилятор
Артём Джагарян
Артём Джагарян
25 445