Вывести значения из функции в main

int cod17(int A[]) {    //Входные параметры: массив
    int j, a, n, s, k;  //Локальные переменные
    for (j = 0, a = 10; a < 30000; a++) {   //Цикл: диапазон от 0 до 30000
        for (n = a, s = 0; n != 0; n = n / 10)  //Цикл с перебором цифр числа а
        {
            k = n % 10; //отделяем поочередно последнюю цифру числа
            s = s + k; //находим сумму цифр
        }
        if (a == s * s * s) A[j++] = a; //условие проверки: если куб суммы цифр равен числу, то добавляем число в массив
    }
}

Ответы (2 шт):

Автор решения: Dafter

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

void cod17(int A[]) {    //Входные параметры: массив
    int j, a, n, s, k;  //Локальные переменные
    for (j = 0, a = 10; a < 30000; a++) {   //Цикл: диапазон от 0 до 30000
        for (n = a, s = 0; n != 0; n = n / 10)  //Цикл с перебором цифр числа а
        {
            k = n % 10; //отделяем поочередно последнюю цифру числа
            s = s + k; //находим сумму цифр
        }
        if (a == s * s * s)
            A[j++] = a; //условие проверки: если куб суммы цифр равен числу, то добавляем число в массив
    }
}

int main()
{
    int a[5];
    cod17(a);
    return 0;
}

И добавлю точку остановки на строке создания массива a (int a[5];) то IDE мне покажет: введите сюда описание изображения
Т.е память не заполнена и в ней мусор, но если после выполнения строки с вызовом функции (cod17(a);) поставить точку остановки можно увидеть:
введите сюда описание изображения
Т.е значения оказались в функции main, хотя мы ничего и не возвращали

→ Ссылка
Автор решения: Oleksii Kolevatov

Код семантически и логически написан очень плохо, ничего личного, это скорее как замечание к тому что в этом сложно разбираться. Я соглашусь с Dafter, то что вы передаете и так указатель на массив, то есть изменение его элементов напрямую изменяет элементы в вашем массиве в main() (больше информации смотрите: указатели). Но что ещё подмечу, так это опасность которая кроется в передаче таких массивов. Вы или терменируйте такой массив каким либо "особенным" значением (что тоже на самом деле зависит от логики использования, что туда может попасть в случае массива int'ов), либо передавайте так же размер массива.

→ Ссылка