Форум программистов, компьютерный форум CyberForum.ru

Возвращение из функций нескольких значений - C++

Восстановить пароль Регистрация
 
OXI
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 5
26.11.2014, 14:55     Возвращение из функций нескольких значений #1
Доброго времени суток. Нужна помощь. Дано задание: Напишите функцию swap(int& a, int& b, int& c), которая изменяет значения
параметров по правилу a>b>c>a. Передачу параметров в функцию реализовать тремя
изученными методами: по значению, по ссылке и по указателю. По ссылке и по указателю сделал, а по значению не получается сделать возврат этих значений. Спасибо.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int swap(int& a, int& b, int& c);
int swap(int* a, int* b, int* c);
int swap1(int a, int b, int c);
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a = 10;
    int b = 20;
    int c = 30;
    cout << a << " " << b << " " << c << endl; 
    swap(a,b,c);
    cout << a << " " << b << " " << c << endl;
    swap(&a, &b, &c);
    cout << a << " " << b << " " << c << endl;
    swap1(a, b, c);
    cout << a << " " << b << " " << c << endl;
    getchar();
    return 0;
}
 
int swap(int& a, int& b, int& c)
{
    int v = a;
    a = c;
    c = b;
    b = v;
    return (a,b,c);
}
 
int swap(int* a, int* b, int* c) {
    int v = *a;
    *a = *c;
    *c = *b;
    *b = v;
    return (*a, *b, *c);
}
 
int swap1(int a, int b, int c) {
    int v;
    a = c;
    c = b;
    b = v;
    return (a,b,c);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Khludenkov
31 / 25 / 4
Регистрация: 30.04.2014
Сообщений: 382
26.11.2014, 15:19     Возвращение из функций нескольких значений #2
А по значению и не будет менять. Читайте документацию.
maritux
Заблокирован
26.11.2014, 15:34     Возвращение из функций нескольких значений #3
Не нужно возвращать, в функцию передаются обьекты и все действия происходят именно с ними.
demmax2004
57 / 135 / 35
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
26.11.2014, 15:54     Возвращение из функций нескольких значений #4
return (a,b,c);
тут он тебе вернет только c
volvo
Супер-модератор
 Аватар для volvo
21833 / 14196 / 3957
Регистрация: 22.10.2011
Сообщений: 25,088
Записей в блоге: 2
26.11.2014, 15:58     Возвращение из функций нескольких значений #5
Цитата Сообщение от demmax2004 Посмотреть сообщение
тут он тебе вернет только a
Не a, а с. Букварь по C++ тебя ждет...
demmax2004
57 / 135 / 35
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
26.11.2014, 16:06     Возвращение из функций нескольких значений #6
а по значению не получается сделать возврат этих значений.
конечно не получится как ты сделал, нужно создавать структуру и передавать через нее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct SWAP
{
    int a;
    int b;
};
 
SWAP swap1(int a, int b)
{
    SWAP sw;
    sw.a = b;
    sw.b = a;
    return sw;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a = 7;
    int b = 3;
    SWAP sw = swap1(a, b);
    printf("return value %i, %i", sw.a, sw.b);
    _gettch();
    return 0;
}
Yandex
Объявления
26.11.2014, 16:06     Возвращение из функций нескольких значений
Ответ Создать тему
Опции темы

Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru