C/C++

Сделать чтобы программа возвращала сразу три значения.

Как сделать чтобы три значения возвращались одновременно


#include <iostream>
#include <conio.h>

int fib(int n)
{
switch (n)
{
case 0:
return 1;
case 1:
return 1;
default:
return fib(n - 2) + fib(n - 1);
return fib(n - 1) + fib(n);
return fib(n) + fib(n + 1);
}
}

int main()
{
int n;

std::cin >> n;
std::cout << fib(n - 1) << " ";
std::cout << fib(n) << " ";
std::cout << fib(n + 1);
return fib(n + 1); return fib(n); return fib(n - 1);

std::cin.clear();
std::cin.ignore();
std::cin.get();

}
Причём тут программа? Куда и что она должна возращать? Что это за бред? А чтобы функция возвращала три значения, то это по всякому можно сделать. Например, так:
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, но тогда их и из функции возвращать не нужно, так как всегда из любой части программы ими можно будет воспользоваться по своему усмотрению...
Зумрик Борзович
Зумрик Борзович
66 572
Лучший ответ
из 3х return в функции срабатывать будет только первый.
return в мэйне - закрывает программу. Уберите его.
вывод делается так:
std::cout << "fib(n - 1) = " << fib(n-1) << std::endl;
std::cout << "fib(n) = " << fib(n) << std::endl;
std::cout << "fib(n + 1) = " << fib(n+1) << std::endl;
Андрей Ферулёв
Андрей Ферулёв
51 416
Для того чтобы вернуть несколько значений из функции, нужно объявить необходимые параметры с модификаторами out. Например.
class SomeClass
{
public int getManyData(out object outData1, out object outData2) {
// Код функции
outData1 = someValue1; // Необходимо инициализировать выходной параметр
outData2 = someValue2; // Необходимо инициализировать выходной параметр
return result;
}
}
Сергей Кузьмин
Сергей Кузьмин
40 861
1) Сделать структуру/класс с 3мя полями, заполнять их и возвращать эту структуру
2) Предать в функцию ссылки/указатели на дополнительно возвращаемые данные и заполнять их
АБ
Алекс Белов
38 458