Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/88: Рейтинг темы: голосов - 88, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 31.12.2016
Сообщений: 73
1

Поменять местами значения 2 переменных с использованием указателей

15.03.2017, 21:32. Показов 17961. Ответов 10
Метки нет (Все метки)

Здравствуйте, что-то недопонимаю....
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
# include <iostream>
using namespace std;
 
//3.Используя указатели и оператор разыменования, 
//обменять местами значения двух переменных.
 
void main()
{
    setlocale(LC_ALL, "Russian");
//Объявление и инициализация 2х переменных
    int a = 55;
    int b = 7;
//объявление типа данных указатель на int и инициализируем его адресом переменной b
    int *numa = &a;
//объявление типа данных указатель на int и инициализируем его адресом переменной a
    int *numb = &b;
//Инициализируем или перезаписываем переменную а с помощью операции разыменования адресом переменной 
//т.е. в а закидываем b, а в b записываем а
    a = *numb;
    b = *numa;
 
    cout << a << b << endl;// вывод результата....(но не правильно)
 
}
Подскажите, в чем ошибка, объясните плиз)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2017, 21:32
Ответы с готовыми решениями:

Поменять местами значения целых переменных х и у не используя дополнительных переменных
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите!!! Поменять...

Поменять местами значения вещественных переменных
Поменяйте местами значения вещественных переменных x и y

Поменять местами значения целых переменных
1.Поменять местами значения целых переменных Х, Y, Z таким образом, чтобы оказалось X\geq Y\geq Z.

Поменять местами значения целых переменных A и B
Поменять местами значения целых переменных. А и B, не используя дополнительные переменные.

10
7158 / 6133 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
15.03.2017, 21:40 2
Тебе третья нужна, для временного хранения.
0
Life Builder
529 / 493 / 374
Регистрация: 12.01.2011
Сообщений: 1,740
15.03.2017, 21:48 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    int a = 55;
    int b = 7;
 
    
    int *temp = new int();
    *temp = a;
 
    int *numb = &b;
 
    a = *numb;
    b = *temp;
 
    
    cout << a << endl;
    cout << b << endl;
    delete temp;
0
1 / 1 / 1
Регистрация: 31.12.2016
Сообщений: 73
15.03.2017, 22:30  [ТС] 4
sk007, пожалуйста, объясните вот эту строчку:
C++
1
int *temp = new int();
Дело в том, что такое еще не учили.... т.е. что такое
C++
1
new int()
?

Спасибо!
1
Life Builder
529 / 493 / 374
Регистрация: 12.01.2011
Сообщений: 1,740
15.03.2017, 22:35 5
Динамическое выделение памяти для одного объекта типа инт.
0
nmcf
15.03.2017, 23:04
  #6

Не по теме:

sk007, ну и зачем ты придумал это выделение? Просто int уже не в моде?

0
Mournful Max
16.03.2017, 02:36
  #7

Не по теме:

nmcf, Прихоть такая у него, чего Вы прицеплись :D

0
1 / 1 / 1
Регистрация: 31.12.2016
Сообщений: 73
16.03.2017, 15:40  [ТС] 8
nmcf, а нельзя без 3ей переменной ?
типа как-то так
а=5;
b = 7;
a = a + b;
a = a - a; //12 - 5 = 7
b = a - b; // 12 - 7 = 5

Добавлено через 6 минут
т.е. вот так:
a = 10
b = 20;

a = a+b // = 30
b = a - b// = 30 - 20 =10
a = a - b // 30 -10 = 20

Добавлено через 9 минут
можно, вот так:
C++
1
2
3
4
5
6
7
int *numa = &a;
    int *numb = &b;
    *numa = *numa + *numb;
    *numb = *numa - *numb;
    *numa = *numa - *numb;
    a = *numa;
    b = *numb;
0
2733 / 1892 / 564
Регистрация: 05.06.2014
Сообщений: 5,525
16.03.2017, 15:48 9
Цитата Сообщение от jekakeba Посмотреть сообщение
nmcf, а нельзя без 3ей переменной ?
А смысл? Экономия памяти? Так у вас код выполняющий подобные трюки сожрет в десять раз больше места, чем занимает один разнесчастный int.
Плюс, если у вас там будет не int, а структура, то такие трюки вообще не будут работать.
0
7158 / 6133 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
16.03.2017, 19:26 10
Цитата Сообщение от jekakeba Посмотреть сообщение
а нельзя без 3ей переменной ?
Была такая "задача на сообразительность" - обменять без третьей. Тебе это, что ли, нужно?
0
633 / 476 / 278
Регистрация: 24.02.2017
Сообщений: 1,710
16.03.2017, 21:06 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
 int a=11,temp;
 int b=55;
 int *p;
 cout<<a<<"    "<<b<<"\n";
 temp=a;
 p=&b;
 a=*p;
 p=&temp;
 b=*p;
 cout<<a<<"   "<<b<<"\n";
 
system("pause");
    return 0;
    }
Добавлено через 22 минуты
[CPP]# include <iostream>
using namespace std;

//3.Используя указатели и оператор разыменования,
//обменять местами значения двух переменных.

void main()
{
setlocale(LC_ALL, "Russian");
//Объявление и инициализация 2х переменных
int a = 55;
int b = 7;
//объявление типа данных указатель на int и инициализируем его адресом переменной b
int *numa = &a; //в numa записали адрес переменной а
//объявление типа данных указатель на int и инициализируем его адресом переменной a
int *numb = &b; //в numb записали адрес переменной b
//Инициализируем или перезаписываем переменную а с помощью операции разыменования адресом переменной
//т.е. в а закидываем b, а в b записываем а
a = *numb; //присвоили переменной а значение переменной b=7
b = *numa; //присвоили переменной b значение переменной a=7, т.к. в переменной а предыдущим действием
//уже записано значение 7

cout << a << b << endl;// вывод результата....(но не правильно)

}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2017, 21:06

Значения переменных X, Y, Z поменять местами так
Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию....

Поменять местами значения двух переменных с использованием третьей переменной
Помогите разобраться. Только начала изучать программирование. Задача такая: составить программу,...

Даны значения двух переменных a и b. Поменять местами значения этих переменных
1) Обмен значениями. Даны значения двух переменных a и b. Поменять местами значения этих переменных.

Значения переменных X,Y,Z поменять местами
Значения переменных X,Y,Z поменять местами так, что бы они оказались упорядоченными по возрастанию


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru