Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 11

Написать функцию swap(int& a,int& b,int& c), которая изменяет значения параметров по правилу a->b->c->a

17.12.2020, 09:27. Показов 4652. Ответов 4

Студворк — интернет-сервис помощи студентам
Написал 3 функции с разной адресацией, возникает проблема с swap1 и swap. Не могу понять где ошибка.
Нужно чтоб вывод работал: По значению, По указателю, По ссылке.

Код программы:


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
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int swap0(int& a, int& b, int& c);
int swap(int* a, int* b, int* c);
int swap1(int a, int b, int c);
 
 
int main()
{
    int a = 1;
    int b = 2;
    int c = 3;
    cout << a << b << c << endl;
    swap0(a, b, c);
    swap(&a, &b, &c);
    swap1(a,b,c);
    _getch();
    return 0;
}
 
int swap0(int& a, int& b, int& c)
{
    int aa = a;
    int bb = b;
    int cc = c;
 
    a = bb;
    b = cc;
    c = aa;
    cout << a << b << c << endl;
    return 0;
}
 
int swap(int* a, int* b, int* c)
{
    int aa = *a;
    int bb = *b;
    int cc = *c;
    *b = cc;
    *a = bb;
    *c = aa;
    cout << *a << *b << *c << endl;
    return 0;
}
 
int swap1(int a, int b, int c)
{
    int aa = a;
    int bb = b;
    int cc = c;
    a = bb;
    b = cc;
    c = aa;
    cout << a << b << c << endl;
    return (a, b, c);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.12.2020, 09:27
Ответы с готовыми решениями:

Напишите функцию f(int& m1, int& m0, int N), которая воз- вращает первую и последнюю цифры двузначного натурального числа N
Напишите функцию f(int&amp; m1, int&amp; m0, int N), которая воз- вращает первую и последнюю цифры двузначного натурального числа N. Решение. ...

в чем разница между void f(int &n) и void f(int &&n)
:help:

Как передать 0 в функцию типа f (int, int&)
Подскажите, почему при повторных вызовах f остается предыдущее значение S? Т.е. не обнуляется в теле f - {...s=0...} и как его обнулить?...

4
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 11
17.12.2020, 10:32  [ТС]
Спасибо
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
17.12.2020, 10:42
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
#include <iostream>
 
using namespace std;
 
void Swap1(int a, int b, int c)
{
    int temp=c;
    c=b;
    b=a;
    a=temp;
    cout << "a=" << a << "  b=" << b << "  c=" << c << "\n";
} 
 
void Swap2(int *a, int *b, int *c)
{
    int d;
    int *temp=&d;
    *temp=*c;
    *c=*b;
    *b=*a;
    *a=*temp;
    cout << "a=" << *a << "  b=" << *b << "  c=" << *c << "\n";
}
 
void Swap3(int& a, int& b, int& c)
{
    int temp=c;
    c=b;
    b=a;
    a=temp;
    cout << "a=" << a << "  b=" << b << "  c=" << c << "\n";
}
 
int main()
{
    int a=1, b=2, c=3;
 
    Swap1(a,b,c);
    a=1, b=2, c=3;
    Swap2(&a, &b, &c);
    a=1, b=2, c=3;
    Swap3(a,b,c);
system("pause");
return 0;
}
Добавлено через 6 минут

Не по теме:

Цитата Сообщение от DyXLeSS_ Посмотреть сообщение
Спасибо
для Спасибо есть кнопка +1 Спасибо дело не в плюсе, пустым сообщением Вы блокируете возможность редактировать код

0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 11
17.12.2020, 11:02  [ТС]
А почему в этой версии кода выводит теперь а=3 б=1 с=2, когда должно быть 2,3,1??
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
17.12.2020, 11:26
DyXLeSS_, я прочитал
Цитата Сообщение от DyXLeSS_ Посмотреть сообщение
a->b->c->a
так: значение 'a' переходит в 'b', значение 'b' в 'с', значение 'с' в 'a'

считаете что нужно не так ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2020, 11:26
Помогаю со студенческими работами здесь

В программе объявлена переменная int x=1; определить значение выражения х>0 && x<1 ? 10/x : 10*x
ответ уже известен, 10. Проблема в том что я не знаю каким образом он был получен.. а точнее какую функцию выполняет &quot;:&quot; здесь....

Пусть объявлена функция void f(int i,int &j){.}. Параметр j является параметром
1)Пусть объявлена функция void f(int i,int &amp;j){...}. Параметр j является параметром a. по адресу b. по ссылке c. по значению ...

Оператор && не может применяться к операндам типа string и int
Оператор &amp;&amp; не может применяться к операндам типа string и string string a, b, c, d; a = &quot;Avet&quot;; ...

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' &amp; ''' &amp;...

Ошибка: Cube::Cube(Cube &&)': cannot convert argument 1 from 'int' to 'int *[]'
Не могу разобраться. Есть массив : int indices = { 1,2,3, 4,5,6 }; У класса конструктор: Cube(int indices);


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru