Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/432: Рейтинг темы: голосов - 432, средняя оценка - 4.98
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453

Функция, которая возвращает несколько значений

22.03.2011, 00:40. Показов 87035. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как "забрать" у функции несколько значений?

допустим:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int func( int x, int y)
{
x+=5;
y+=3;
}
return (x,y)
 
int main()
{
int x=5, y=1;
// как хотелось бы сделать (arr[0] присвоилось бы х , а arr[1] присвоилось бы y)
int arr[2] = { func (x, y) }; 
}
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2011, 00:40
Ответы с готовыми решениями:

Функция F1, которая не принимает и не возвращает значений, но выводит на экран любое сообщение
На языке С/C++ написать программу в которой имеется функция F1, которая не принимает и не возвращает значений, но выводит на экран любое...

Функция, которая возвращает string
Всем привет. Есть пример самого элементарного многофайлового проекта, но он не хочет компилироваться. Ошибка: Error C4430 missing...

Функция, которая возвращает структуру
Не поддаётся компиляции. В чём дело? Как с этим работать? Не нашёл ответа и буду благодарен, если объясните и поправите //source.h ...

7
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.03.2011, 00:44
Либо ссылки, либо указатели, либо описать структуру, представляющую весь набор желаемых значений и возвращать её экземпляр.
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
22.03.2011, 00:45
Нет, функция возвращает только одного значение, или вообще ничего.

Но можно сделать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
void func (int *x, int *y)
{
    *x+=5;
    *y+=3;
}
 
int main (void)
{
    int a=5;
    int b=10;
    std::cout << "Before: a=" << a << "; b=" << b;
    std::cout << std::endl;
 
    func (&a, &b);
 
    std::cout << "After: a=" << a << "; b=" << b;
    std::cout << std::endl;
    return 0;
}
Добавлено через 15 секунд
silent_1991, сор, уже поздно увидел пост))
4
22.03.2011, 00:46

Не по теме:

neske, ничего, у меня ещё страница обновиться после отправки не успела, как пришло письмо о новом сообщении в теме)))

1
20 / 20 / 3
Регистрация: 18.09.2010
Сообщений: 28
22.03.2011, 00:49
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
void func(int*,int);
void main()
{
    int x=5,y=1;
    int arr[2]={0};
    func(arr,2);
}
void func(int*arr,int size)
{
    arr[0]=5;
    arr[1]=3;
    cout<<arr[0]<<" "<<arr[1]<<endl;
}
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.03.2011, 00:58  [ТС]
Спасибо, но не совсем то. В этом конкретном примере хотелось бы как-то взять с функции значение maxrank вместе c maxzn.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
int combo (int r[5], int s[5]) // комбинации
{
     int m=0, n=1;
     int maxzn=1; // максимальная комбинация
     int maxrank=1; // ранк максимального значения
     for (int i=0; i<4; i++)
     {
         if (r[m]==r[n+i])
         {
         for (int j=4-i; j<3; j++)
         {
             if (r[n+i]==r[j])
             {
                  maxzn=3;
                  maxrank=r[n+i];
             }
             else
             {
                 maxzn=2;
                 maxrank=r[m];
             }
         }
         }
     }
     if (maxzn==3)
     cout<<"Тройка\n";
     if (maxzn==2)
     cout<<"Двойка\n";
     if (maxzn==1)
     cout<<"Старшая карта\n";
     return (maxzn); // передается значение
}
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
22.03.2011, 01:02
MrGluck, в таком случае объяви переменные maxzn и maxrank в основной функции main (), а в фукнции работай уже с адресами этими переменных ( как показано в примере выше), тогда окажется, что после выполнения функции обе переменные изменились.

Другого, более просто варианта ,у вас нет.
1
 Аватар для vx5
191 / 175 / 12
Регистрация: 04.09.2010
Сообщений: 656
22.03.2011, 01:31
MrGluck, функция, возвращающая несколько значений неверна уже логически. вы пытаетесь склеить несколько функций, разбейте ее на две различные.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2011, 01:31
Помогаю со студенческими работами здесь

Функция которая возвращает класс
Есть функция считывания вектора с формы Вызов функции выглядит так Vector1.GetVector(GridOfVector1); CVector...

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

Функция, которая возвращает массив
Здравствуйте. Подскажите, пожалуйста, как правильно написать код - есть функция; она должна вернуть массив, который создается в этой же...

Функция, которая только возвращает значение
Как реализовать функцию, которая только возвращает значение. Вот, например: #include &quot;stdafx.h&quot; #include &lt;locale&gt; ...

Функция, которая возвращает максимальное и минимальное
Кто может дать материал на тему: Функция, которая возвращает максимальное и минимальное Теорию или задачу.. Заранее благодарен)


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
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
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами 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/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru