Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Антон541
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 8
1

Из функции вернуть более одного значения

30.10.2015, 10:39. Просмотров 499. Ответов 11
Метки нет (Все метки)

У меня есть функция:
C++
1
2
3
4
5
6
7
8
code(int y, int z){
int g=y+z;
int f=y*z;
return g,f;
}
main(){
int sum=code(5,15);
}
Как прописать в main чтобы функция выдавала два значения. Ведь при присваивании происходит присваивание только одного.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 10:39
Ответы с готовыми решениями:

Как вернуть больше одного значения из функции?
здрасти, как быть если функция должна возвратить не 1 значение а 2?

Вернуть из функции 2 значения
Как вернуть из функции 2 значения? Нужно вернуть строку и ее длину, но чтобы...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая...

Вернуть из функции два значения
функция должна находить максимальное и минимальное значение используя классы...

Как вернуть сразу 2 значения из функции?
Есть функция, которая генерирует 2 параметра. Как сделать так, чтобы функция их...

11
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,621
Завершенные тесты: 1
30.10.2015, 10:43 2
C++
1
2
3
4
5
6
7
8
9
10
11
void code(int y, int z,int& g,int& f)
{
   g=y+z;
   f=y*z;
}
int main()
{
   int s1,s2;
   code(5,15,s1,s2);
   cout<<s1<<' '<<s2<<endl;
}
0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
30.10.2015, 10:49 3
www.cplusplus.com/reference/utility/pair/
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
30.10.2015, 10:52 4
Антон541, можно сделать так, как написал zss, а можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
struct Code
{
    int g, f;
};
 
Code code(int x, int y)
{
    Code temp {x+y, x*y};
    return temp;
}
 
int main()
{
    Code sum = code (5, 15);
    cout << sum.g << ' ' << sum.f << endl;
}
1
ishellstrike
77 / 13 / 11
Регистрация: 23.10.2015
Сообщений: 83
30.10.2015, 13:08 5
std::tuple как вариант
0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
30.10.2015, 13:23 6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
struct Code
{
* * int g, f;
};
Врядли так можно
0
Kastaneda
Jesus loves me
Эксперт С++
4937 / 3013 / 346
Регистрация: 12.12.2009
Сообщений: 7,610
Записей в блоге: 2
Завершенные тесты: 1
30.10.2015, 13:30 7
rikimaru2013, почему?
1
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
30.10.2015, 13:33 8
Проверил - компилится) Первый раз вижу такое)) Мне бы даже в голову не пришло так написать поля (((
0
Kastaneda
Jesus loves me
Эксперт С++
4937 / 3013 / 346
Регистрация: 12.12.2009
Сообщений: 7,610
Записей в блоге: 2
Завершенные тесты: 1
30.10.2015, 13:48 9
rikimaru2013, обычная же запись
C++
1
2
3
int a, b, c, d;
std::string str1, str2, str3;
MyType ob1, ob2, ob3;
0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
30.10.2015, 14:40 10
Цитата Сообщение от Kastaneda Посмотреть сообщение
обычная же запись
Для перечисления полей методов НЕ обычно


класса*
0
ishellstrike
30.10.2015, 14:58
  #11

Не по теме:

rikimaru2013, не знаю что вас удивило, даже у Страуструпа в "Язык программирования С++" самое первое упоминание о классах выглядит так

C++
1
2
3
4
5
6
7
8
class date {
 int month, day, year;
 public:
 void set(int, int, int);
 void get(int*, int*, int*);
 void next();
 void print()
};

0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.10.2015, 15:23 12
Совместно с std::tuple удобно использовать std::tie (не нужно создавать лишних переменных):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <tuple>
 
using namespace std;
 
tuple<int, double, string> f() {
    return make_tuple(42, 100.500, string("kokoko"));
}
 
int main()
{
    int i = 999;
    double d = 123.456;
    string s = "ololo";
    
    tie(i,ignore,s) = f();
    
    cout << i << '\n' << d << '\n' << s << endl;
    
    return 0;
}
Код
42
123.456
kokoko
Live example
2
30.10.2015, 15:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2015, 15:23

Как вернуть из функции два значения?
Подскажите,как вернуть из ф-ции 2 значения .Вроде ,как то можно с помощью pair...

Как вернуть из функции два значения
Доброго времени суток! Подскажите, пожалуйста, как вернуть два значения: row и...

Как вернуть сразу 2 значения массива в функции?
Собственно дан у меня например массив &quot;aa&quot;, где l-левая граница, а r-правая....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru