Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336

Обменять значение перменных

09.12.2010, 12:35. Показов 1427. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть перемные a=5, b=4, нужно что было b=5,a=c;, но при этом не применяя дополнительных перменнных. Тоесть работать только с а и б.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2010, 12:35
Ответы с готовыми решениями:

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

инициализация перменных в конструкторе
у меня есть статический вектор векторов инт(vector<vector<int>>),который мне нужно заполнить данными,но при попытке написать ...

сравнение двух перменных
Как реализовать. Если хотя бы одна переменная существует то выполнить код if($_GET==NULL&&($_GET==1 ) { выполнить код ...

18
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
09.12.2010, 12:37
а=с?? что за с?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
09.12.2010, 12:50
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
void swap ( int * a, int * b){
    *a ^= *b;
    *b = *a ^ *b;
    *a = *a ^ *b;
}
 
int main(void){
    int a = 13, b = 69;
    
    printf("a = %d\tb = %d\n", a, b);
    swap(&a, &b);
    printf("a = %d\tb = %d\n", a, b);
    
    return 0;
}
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.12.2010, 13:01
Ещё вариант:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
void swap(int *a, int *b)
{
    *a = *a + *b;
    *b = *a - *b;
    *a = *a - *b;
}
 
int main(void)
{
    int a = 5, b = 99;
 
    printf("a = %d\tb = %d\n", a, b - 95);
    swap(&a, &b);
    printf("a = %c\tb = %d\n", a, b);
 
    return 0;
}

Не по теме:

P.S. Как и просили)))

1
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
09.12.2010, 13:06  [ТС]
нечайно написал c
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.12.2010, 13:07
Тогда так)))

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
void swap(int *a, int *b)
{
    *a = *a + *b;
    *b = *a - *b;
    *a = *a - *b;
}
 
int main(void)
{
    int a = 5, b = 4;
 
    printf("a = %d\tb = %d\n", a, b);
    swap(&a, &b);
    printf("a = %d\tb = %d\n", a, b);
 
    return 0;
}
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
09.12.2010, 13:16  [ТС]
C++
1
2
3
4
5
void swap ( int * a, int * b){
        *a ^= *b;
        *b = *a ^ *b;
        *a = *a ^ *b;
}
правдо си я начал изучать только сёдня, так что пару вопросов если не трудно:
1)void swap-это как я понял функция?
2)int * a, int * b -что обозначают в данном случаи знаки умножения
3)что означает ^

по заданию числа вводяцо с клавы:
я сделал так
C++
1
2
3
4
printf("a=");
    scanf("%d",&a);
    printf("a=");
    scanf("%d",&b);
но сам всегда использовал cout и cin-что лучше использовать?
и последний вопрос про scanf("%d",&a); зачем нужно "%d",&, ибо я их просто вытащил из примеров на форуме.
0
Заблокирован
09.12.2010, 13:42
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int a , b;
    cout<<"a = ";
    cin>>a;
    cout<<"b = ";
    cin>>b;
    cout<<"a = "<<a<<"\tb = "<<b<<endl;
    a = b ^ a;
    b = a ^ b;
    a = b ^ a;
    cout<<"a = "<<a<<"\tb = "<<b<<endl;
    system("pause");
    return 0;
}
может так проще будет для вас
Цитата Сообщение от nonamez123 Посмотреть сообщение
1)void swap-это как я понял функция?
да
2)int * a, int * b -что обозначают в данном случаи знаки умножения
знаки умножения - указатели, &а - разыменовать указатель(как по-человечески сказать, не помню, типа добраться до значения переменной, на которую указывает указатель)
3)что означает ^
- логическая операция "исключающее или"
"%d" стоит, чтоб сказать printf'у, чтобы он выводил целое число
примерно так
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.12.2010, 13:48
В дополнение к предыдущему посту:

Указатель - переменная, которая может хранить адрес другой переменной. Если бы в функцию swap мы передавали не адреса переменных (вызов функции происходит так: swap(&a, &b), операция & - взятие адреса переменной в памяти), а значения (было бы swap(a, b)), то эти значения копировались бы в собственные переменные a и b функции swap, и значения менялись бы у совсем других переменных a и b, а те, что мы на самом деле хотим поменять, оставались бы неизменными. А так как мы передаём в функцию не значения переменных, а их адреса, то по этим адресам мы можем добраться до реальных переменных a и b, которые мы действительно хотели бы обменять местами.
В функции swap в строке, например, *a = *a ^ *b , * означает, что мы берём значение переменной по её адресу.
2
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
09.12.2010, 15:18  [ТС]
спасибо, будет что гуглить, а то по запросу C++ ^* нечё путёвого нет)

Добавлено через 51 секунду
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int a , b;
    cout<<"a = ";
    cin>>a;
    cout<<"b = ";
    cin>>b;
    cout<<"a = "<<a<<"\tb = "<<b<<endl;
    a = b ^ a;
    b = a ^ b;
    a = b ^ a;
    cout<<"a = "<<a<<"\tb = "<<b<<endl;
    system("pause");
    return 0;
}
может так проще будет для вас

да

знаки умножения - указатели, &а - разыменовать указатель(как по-человечески сказать, не помню, типа добраться до значения переменной, на которую указывает указатель)
- логическая операция "исключающее или"
"%d" стоит, чтоб сказать printf'у, чтобы он выводил целое число
примерно так
не, как раз с функцией очень даже хорошо-буду хоть какое-то представление иметь, а вот что значит endl?
0
Заблокирован
09.12.2010, 15:19
Цитата Сообщение от nonamez123 Посмотреть сообщение
а вот что значит endl?
перевод строки
насчет ^, лучше гуглить "xor c++", xor - это аналог(в vb, pas)
1
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.12.2010, 15:20
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
перевод строки
+ очищает буфер
1
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
09.12.2010, 15:24  [ТС]
какая разница между \n и endl? как я понял \n для использования в тексте, а endl за его пределами?

Добавлено через 25 секунд
Цитата Сообщение от asics Посмотреть сообщение
+ очищает буфер
теперь понятно)

Добавлено через 2 минуты
да, и ещё... какой вариант лучше использовать ? cin,cout или же scanf,printf ?
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.12.2010, 15:31
nonamez123, cin, cout - это С++
scanf,printf - это Си.
И не стоит об этом забывать.
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
09.12.2010, 15:37  [ТС]
Цитата Сообщение от asics Посмотреть сообщение
nonamez123, cin, cout - это С++
scanf,printf - это Си.
И не стоит об этом забывать.
если сидишь именно в c++ я имел в виду. Потому-что у нас вот к примеру в учебке начали с Turbo C++ Lite, но препод всё-равно использует printf,scanf.
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.12.2010, 15:39
nonamez123, Как по мне, то это полохой тон использовать сишные функции в С++.
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
10.12.2010, 11:44
Не люблю, когда смешивают языки. Поддержка сишных средств для работы с потоками оставлена в плюсах для совместимости с тоннами ранее написанного на Си кода, но не для того, чтобы смешивать языки, и наряду с, например, new/delete использовать printf/scanf.
0
10.12.2010, 13:01

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Поддержка сишных средств для работы с потоками оставлена в плюсах для совместимости с тоннами ранее написанного на Си кода, но не для того, чтобы смешивать языки
Вот представьте ситуацию: не знает человек ни С, ни С++, мало того - и знать не хочет. Но вот незадача, С++ - обязательный предмет в школе/институте/универе. Исключая варианты со взятками и (или) покупкой лабораторных/контрольных/что_у_них_там_ещё_бывает остаётся одно - учить худо/бедно. А препод не то, чтобы сам ничего не знает, скорее даже наоборот - точно знает, что и так заработает + считает себя выше всяких "мелких формальностей". Вот и учит студентов вместо заявленного С++ некоему гибридному языку почти собственного сочинения... Это Вы в курсе, что так не правильно, а студенту, которому лишь бы сдать зачёт/контрольную/экзамен, что printf(), что cout, что Console.WriteLine какое-нибудь - без особой разницы, он всё равно всё это через год как страшный сон забудет.

0
10.12.2010, 18:13

Не по теме:

easybudda, ну, я всего-лишь высказал своё мнение и аргументировал его. А вообще, хреновый это учитель, который не даёт своим ученикам самостоятельно что-то делать. Ведь он таким образом по большому счёту не учит ничему, а даёт установку делать так, а не иначе. Нас вот до сих пор никогда так не ограничивали, как хотите - так и пишите, главное, чтобы правильно.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2010, 18:13
Помогаю со студенческими работами здесь

DLL библиотки, вывод перменных
Начал изучать DLL шки! И сразу возник такой вопрос! Вот написал я в dll массив и переменные: var a:array of integer; ...

Не передаются данные query с перменных
Всем привет, изучаю я вот такой php, и столкнулся значит с такой вот проблемой, делаю банальную форму с добавлением в бд. Но вот...

Обменять значения переменной, имеющей наибольшее значение с переменной, имеющей наименьшее значение
Даны значения трех вещественных переменных a, b и c, отличные друг от друга. Обменять значения переменной, имеющей наибольшее значение с...

Сравнение перменных при Linq запросах из БД
Здраввствуйте, натыкаюсь на грабли преобразования типов при запросе к БД, когда нужно делать выборку по какому то условию, а типы...

Деление перменных с отображением дробной части
Здравствуйте!Скажите пожалуйста, как поделить переменные, чтобы отобразилась дробная часть? То есть, что-то типа такого: int M,N; ...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru