Возврат в Int Функция в C ++ - PullRequest
0 голосов
/ 07 ноября 2019
int r, i, arrayMinimumIndex(auto a)
{
    for (int c : a)
        c > a[r] ?: r = i, ++i;
    return r;
}

Я пытаюсь запустить этот код, но он показывает:

[Error] a function-definition is not allowed here before '{' token
[Error] 'arrayMinimumIndex' was not declared in this scope

Может кто-нибудь объяснить, почему он терпит неудачу и исправить это? Заранее спасибо

1 Ответ

1 голос
/ 07 ноября 2019

Правильное определение функции будет выглядеть следующим образом:

int arrayMinimumIndex(auto a) //format: return type, methode name, parameters
{
    int r = 0, i = 0; //variable definitions in the method body
    // search the index..
    return r;
}

В качестве альтернативы

int r, i, arrayMinimumIndex(auto a);

также будет работать. r и i являются глобальными в этом случае. И все же вам придется реализовать метод arrayMinimumIndex позже (см. Выше).

Кроме того, вызов (int c: a) завершится неудачно, если вы не используете C ++ 11 (или выше), потому что простые массивыне реализованы итераторы. Так что вы должны рассмотреть, например, передачу std::vector или пройти массив вручную, как for (int i = 0; i < ...; ++i)

...