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

Как возвратить несколько значений в функции?

16.09.2013, 17:13. Просмотров 1742. Ответов 27
Метки нет (Все метки)

Функция, реализующая обобщенный алгоритм Евклида. Нужно вернуть 3 значения: gcd, x и y. То есть нужно возвратить значения массива U. Подскажите как это лучше сделать?

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
__int64 Low2(__int64 a, __int64 b)
{   if (a<0 || b<0)
    printf("\nUslovie ne vipolneno. Zadaite a ili b zanovo");
    else 
    {
    if (a<b)
    {
        int z;
        z=a; a=b; b=z;
    }
 
    int U[3], V[3], T[3], q, k;
    U[0]=a; U[1]=1; U[2]=0;
    V[0]=b; V[1]=0; V[2]=1;
 
    do
    {
        q=U[0]/V[0];
        T[0]=U[0]%V[0];
        T[1]=U[1]-q*V[1];
        T[2]=U[2]-q*V[2];
        int i;
        for (i=0; i<=2; i++)
        {
        U[i]=V[i];
        V[i]=T[i];
        }
    }
    while (V[0]>0);
    return .........
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 17:13
Ответы с готовыми решениями:

Как вернуть из функции несколько значений?
Привет :) Собственно говоря вопрос понятен из темы) Вот код, не знаю как...

Как из функции вернуть несколько значений?
Здравствуйте)! Не могу понять как из функции вернуть несколько...

Как из функции вытащить несколько значений.
Люди помогите,не могу нигде найти, как из функции вытащить несколько значений.

Как функции возвратить ссылку на объект?
//Есть некая функция что писать перед функцией??? Инт написал. int func(){ //...

Как принять и возвратить массив в другой функции?
пример: прототип функции ??? int main() { создаём функцию которая...

27
Артем1909
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 7
16.09.2013, 18:09  [ТС] 21
Еще раз повторю задание: в функции у меня вычисляется 3 значения - НОД, x, y по обобщенному алгоритму Евклида, здесь это U[0],U[1] и U[2]. Мне нужно, чтобы функция возвращала все 3 значения, так как буду использовать эту функцию в дальнейшем.
0
rangerx
1942 / 1551 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
16.09.2013, 18:09 22
Цитата Сообщение от Артем1909 Посмотреть сообщение
Да, сказали, что можно с помощью указателей возвратить значения массива U. Но я не знаю как это сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void func(int* one, int* two, int* three)
{
    *one = 1;
    *two = 2;
    *three = 3;
}
 
int main()
{
    int a, b, c;
    func(&a, &b, &c);
    std::cout << a << ' ' << b << ' ' << c << '\n';
}
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 18:10 23
Цитата Сообщение от Voivoid Посмотреть сообщение
В задании указано, что нужно просто возвратить три значения.
...
Цитата Сообщение от Croessmah Посмотреть сообщение
ну сделайте тогда структуру
Цитата Сообщение от Артем1909 Посмотреть сообщение
у меня не получается, можешь помочь? препод сказал, что можно также с помощью указателей...
Цитата Сообщение от Артем1909 Посмотреть сообщение
Да, сказали, что можно с помощью указателей возвратить значения массива U. Но я не знаю как это сделать
0
Croessmah
++Ͻ
14627 / 8378 / 1580
Регистрация: 27.09.2012
Сообщений: 20,581
Записей в блоге: 2
Завершенные тесты: 1
16.09.2013, 18:12 24
rangerx,
Цитата Сообщение от Артем1909 Посмотреть сообщение
возвращала 3 эти значения с помощью return.
0
Voivoid
708 / 280 / 16
Регистрация: 31.03.2013
Сообщений: 1,339
16.09.2013, 18:12 25
Цитата Сообщение от Raali Посмотреть сообщение
C++
1
2
3
4
5
6
int* getArray()
{
int* ret = new int[3];
...
return ret;
}
только не забыть потом удалить
Ага и на ровном месте получаем возможность утечки памяти плюс возможность выхода за пределы массива. Ну еще и можно упомянуть низкую эффективность из-за необходимости выделения динамической памяти ( ну, на случай, если придется многократно вызывать данную функцию )

у меня не получается, можешь помочь? препод сказал, что можно также с помощью указателей...
Можно, но не нужно
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 18:15 26
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void func(int* one, int* two, int* three)
{
    *one = 1;
    *two = 2;
    *three = 3;
}
 
int main()
{
    int a, b, c;
    func(&a, &b, &c);
    std::cout << a << ' ' << b << ' ' << c << '\n';
}
...
Цитата Сообщение от Артем1909 Посмотреть сообщение
Мне нужно, чтобы функция возвращала все 3 значения,
Добавлено через 2 минуты
Цитата Сообщение от Артем1909 Посмотреть сообщение
Мне нужно, чтобы функция возвращала все 3 значения
Тогда, лучше всего, подходит вариант со структурой.
0
Raali
16.09.2013, 18:18
  #27

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Чем это отличается от моего предложения?
Ну тс попросил другой вариант еще xD

0
MousePro
49 / 30 / 4
Регистрация: 25.04.2013
Сообщений: 366
16.09.2013, 18:39 28
Цитата Сообщение от Артем1909 Посмотреть сообщение
Еще раз повторю задание: в функции у меня вычисляется 3 значения - НОД, x, y по обобщенному алгоритму Евклида, здесь это U[0],U[1] и U[2]. Мне нужно, чтобы функция возвращала все 3 значения, так как буду использовать эту функцию в дальнейшем.
/del
0
16.09.2013, 18:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2013, 18:39

Как возвратить созданый динамический двухмерный массив из функции в main?
Надо из функции mtx возвртить матрицу в главную функцию. Матрица создаеться и...

Несколько значений функции
Здравствуйте. Нужно написать рекурсивную функцию, к-ая возвращает наибольный...

Вернуть несколько значений из функции С++
Здравствуйте!!! Нужна помощь. В общем есть ДЛЛ написанная мною на плюсах в VS...


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

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

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