С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913

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

03.02.2010, 17:51. Показов 3871. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здрасти, как быть если функция должна возвратить не 1 значение а 2?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2010, 17:51
Ответы с готовыми решениями:

Из функции вернуть более одного значения
У меня есть функция: code(int y, int z){ int g=y+z; int f=y*z; return g,f; } main(){ int sum=code(5,15); } Как прописать...

Как вернуть 2 значения из функции?
Добрый день. У меня такой вопрос - как в этой проге можно вернуть 2 значения из функции? #include <stdio.h> #include...

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

7
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
03.02.2010, 17:56
Попробуй использовать передать аргументы в функцию по ссылке. Либо использовать указатели. Как тебе удобнее.
1
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.02.2010, 17:58  [ТС]
про ссылки слышал, а кроме этих 2-ух способов больше никак нельзя?
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
03.02.2010, 18:01
А напиши какая у тебя функция? и зачем возвращать 2 переменных? Может удобнее разбить функцию на две?

И почему не хочешь юзать ссылки?
0
 Аватар для Зоти Сергей
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
03.02.2010, 18:09
Можно и без ссылок. Создайте обычную структуру, с двумя переменными.
Потом функцию с типом этой структуры.
Например вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct C2Values
{
    int First;
        int Second;
};
 
C2Values Get2Values()   //Эта ф-ция возвращает 2 значения.
{
    C2Values Result;
        Result.First=2;
        Result.Second=3;
        return Result;
}
 
 
int main(int argc, char* argv[])
{
    C2Values Values = Get2Values();
    return 0;
}
1
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.02.2010, 18:19  [ТС]
пишу транспортную задачу, в частности функцию нахождения оптимального плана:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int** BasicPlan(int** pMatrix,int count_supplier, int count_consumer){
    int i=1;
    int j=1;
    int optimised_plan=0;
    while ((i<count_supplier) && (j<count_consumer)){
        if (pMatrix[i][0]>=pMatrix[0][j]){
            pMatrix[i][j]=pMatrix[0][j];
            pMatrix[i][0]-=pMatrix[0][j];
        } else {
            pMatrix[i][j]=pMatrix[i][0];
            pMatrix[i+1][j]=pMatrix[0][j]-pMatrix[i][j];
            i++;
            pMatrix[i][0]-=pMatrix[i][j];
        }
        j++;
    }
    return pMatrix;
}

эта функция возвращает указатель на массив, а еще я хочу чтоб она возвратила сумму всех элементов массива.

Добавлено через 2 минуты
Зоти Сергей, вот это интересно. А можно только не структуру а класс?

Добавлено через 6 минут
Цитата Сообщение от @KOT@ Посмотреть сообщение
А напиши какая у тебя функция? и зачем возвращать 2 переменных? Может удобнее разбить функцию на две?

И почему не хочешь юзать ссылки?
ну ссылки мне както не подходят
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
03.02.2010, 18:21
Цитата Сообщение от PointsEqual Посмотреть сообщение
Зоти Сергей, вот это интересно. А можно только не структуру а класс?
Я конечно не Зоти Сергей, но тебе отвечу: Можно

В C++ отличие между классом и структурой заключается лишь в провах доступа по-умолчанию: в классе это private, а в структурах - public. Но никто не мешает тебе в структуре изменить эти права и добавить методы
1
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.02.2010, 18:32
если производительность критична, лучше не использовать ф-й типа класса или структуры (ф-й, возвращающих такие значения). но если это некритично, то может быть самым удобным способом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2010, 18:32
Помогаю со студенческими работами здесь

Как вернуть из функции два значения
Доброго времени суток! Подскажите, пожалуйста, как вернуть два значения: row и column из функции. Спасибо! void ReadM(long double **mat,...

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

Как вернуть два значения из функции?
Ребят, нужно вернуть из функции два значения. Подскажите как. Без массива public double Diaginals() { ...

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru