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

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

Регистрация
20 Дек 2013
Сообщения
96
Репутация
-2
Спасибо
0
Монет
0
Как сделать чтобы три значения возвращались одновременно





#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();



}
 
Регистрация
11 Сен 2013
Сообщения
96
Репутация
0
Спасибо
0
Монет
0
Причём тут программа? Куда и что она должна возращать? Что это за бред? А чтобы функция возвращала три значения, то это по всякому можно сделать. Например, так:
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, но тогда их и из функции возвращать не нужно, так как всегда из любой части программы ими можно будет воспользоваться по своему усмотрению...
 
Регистрация
28 Авг 2013
Сообщения
91
Репутация
0
Спасибо
1
Монет
0
1) Сделать структуру/класс с 3мя полями, заполнять их и возвращать эту структуру
2) Предать в функцию ссылки/указатели на дополнительно возвращаемые данные и заполнять их
 
Регистрация
11 Авг 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
из 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;
 
Регистрация
30 Апр 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Для того чтобы вернуть несколько значений из функции, нужно объявить необходимые параметры с модификаторами out. Например.
class SomeClass
{
public int getManyData(out object outData1, out object outData2) {
// Код функции
outData1 = someValue1; // Необходимо инициализировать выходной параметр
outData2 = someValue2; // Необходимо инициализировать выходной параметр
return result;
}
}
 
Сверху Снизу