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

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

03.02.2010, 17:51. Показов 3877. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru