Причём тут программа? Куда и что она должна возращать? Что это за бред? А чтобы функция возвращала три значения, то это по всякому можно сделать. Например, так:
struct three { long long a, b, c; };
three f(long n) { three x; x.a = x.b = x.c = n;
x.b *= n; x.c *= x.b; return x; }
Так функция f с четырёхбайтным целым аргументом n вернёт три числа n, n² и n³ восьмибайтного целого типа одним оператором return. Или просто значения трёх чисел можно записать в глобальные переменные a, b, c, но тогда их и из функции возвращать не нужно, так как всегда из любой части программы ими можно будет воспользоваться по своему усмотрению...
1) Сделать структуру/класс с 3мя полями, заполнять их и возвращать эту структуру
2) Предать в функцию ссылки/указатели на дополнительно возвращаемые данные и заполнять их
Для того чтобы вернуть несколько значений из функции, нужно объявить необходимые параметры с модификаторами out. Например.
class SomeClass
{
public int getManyData(out object outData1, out object outData2) {
// Код функции
outData1 = someValue1; // Необходимо инициализировать выходной параметр
outData2 = someValue2; // Необходимо инициализировать выходной параметр
return result;
}
}