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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DenyaA
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 6
#1

Поменять местами два числа, не используя дополнительные ячейки памяти - C++

08.10.2011, 19:09. Просмотров 494. Ответов 6
Метки нет (Все метки)

Когда вводишь два числа нужно что бы они поменялись местами, не используя при это дополнительные ячейки то есть всего 2 ячейки

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main() {
    int a,b;
    cin>>a>>b;
    Дальше вот тут вывести какую-то формулу;
    cout<<a<<b<<endl;
    return 0;
}
Просто в cout поменять b и a нельзя.
Помогите.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 19:09     Поменять местами два числа, не используя дополнительные ячейки памяти
Посмотрите здесь:
C++ Поменять местами значения целых переменных А и В, не используя дополнительные переменные
C++ Кратчайший код: поменять два числа местами и вывести их
Поменять цифры заданного двузначного числа местами, используя математические операции C++
C++ Поменять ячейки местами
Поменять местами два массива C++
Поменять местами два полуслова C++
Поменять местами два массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
08.10.2011, 19:12     Поменять местами два числа, не используя дополнительные ячейки памяти #2
Попробуйте записать одно число в текстовый файл (использовать его как буфер). Суть та же, да, но заданию-то не протеворечит
alkagolik
Заблокирован
08.10.2011, 19:28     Поменять местами два числа, не используя дополнительные ячейки памяти #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
 
int main(){
    int a = 9, b = 6;
    printf("a = %d, b = %d\n", a, b);
    a += b;
    b = a - b;
    a = a - b;
    printf("a = %d, b = %d\n", a, b);
    return 0;
}
x1Mike7x
216 / 129 / 6
Регистрация: 06.11.2010
Сообщений: 234
08.10.2011, 19:28     Поменять местами два числа, не используя дополнительные ячейки памяти #4
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream> 
using namespace std; 
int main() 
{ 
    int a,b; 
    cin>>a>>b; 
    b ^= a ^= b ^= a %= b; 
    cout<<a<<b<<endl; 
    return 0; 
}
alkagolik
Заблокирован
08.10.2011, 19:35     Поменять местами два числа, не используя дополнительные ячейки памяти #5
x1Mike7x,
Код
a = 0, b = 9
a = 9, b = 0

a = 1, b = 8
a = 8, b = 1

a = 2, b = 7
a = 7, b = 2

a = 3, b = 6
a = 6, b = 3

a = 4, b = 5
a = 5, b = 4

a = 5, b = 4
a = 4, b = 1

a = 6, b = 3
a = 3, b = 0

a = 7, b = 2
a = 2, b = 1

a = 8, b = 1
a = 1, b = 0

a = 9, b = 0
Исключение в операции с плавающей точкой
DenyaA
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 6
08.10.2011, 19:43  [ТС]     Поменять местами два числа, не используя дополнительные ячейки памяти #6
Спасибо большое за ответы, но в формуле нужно использовать только знаки "+" и "-".
И кстати что за знак "^".
Я просто изучаю С++ 4 дня, так что я совсем нуб.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2011, 19:49     Поменять местами два числа, не используя дополнительные ячейки памяти
Еще ссылки по теме:
Поменять местами два элемента массива C++
C++ Поменять местами два элемента в массиве
Поменять местами два элемента массива C++
В фразе поменять местами два слова C++
C++ Поменять местами два элемента массива

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

Или воспользуйтесь поиском по форуму:
alkagolik
Заблокирован
08.10.2011, 19:49     Поменять местами два числа, не используя дополнительные ячейки памяти #7
DenyaA, это логические (побитовые) операции с двоичными векторами, вы наверное уже проходили булеву алгебру.
ИЛИ |
И &
НЕ ~
исключающее ИЛИ ^ еще говорят сложение по модулю 2 используется в алгебре Жегалкина основная арифметическая операция дискретных ВУ.
Yandex
Объявления
08.10.2011, 19:49     Поменять местами два числа, не используя дополнительные ячейки памяти
Ответ Создать тему
Опции темы

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