Top.Mail.Ru
Ответы

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(); и усе без всяких типов в начале.

Аватар пользователя
Высший разум
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
 #include <iostream> 
 
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 << msg; 
        cin >> length; 
        cin.ignore(0x1000, '\n'); 
    } 
    return length; 
} 
 
void fill_array(int* box, const size_t length) { 
    cout << "Введите элементы целочисленного массива: "; 
    for (size_t i = 0; i < length; ++i) { 
        cin >> 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 << msg << value << '\n'; 
} 
 
void operations(int* box, const size_t length) { 
    enum class Action { Addition = 1, Subtraction, Minimum, Maximum, Exit }; 
    const char menu[]{ R"( 
1. Найти сумму элементов массива 
2. Найти разность элементов массива 
3. Найти максимальный элемент массива 
4. Найти минимальный элемент массива 
5. Завершить действия с массивом 
>>> )" }; 
    size_t choice; 
    while (true) { 
        cout << menu; 
        cin >> 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 и пытаетесь ее проинициализировать сразу тремя значениями, о чем и пишет компилятор