Пользователь вводит два числа. Одно присваивается одной переменной, а второе — другой. Необходимо поменять значения переменных так, чтобы значение первой оказалось во второй, а второй — в первой.
Существует два способа обменять значения переменных. Первый подходит для любых типов данных, а второй — только для численных.
1-й способ. Через «буферную» переменную
Пусть первое введенное значение присвоено переменной a, второе — b.
Присвоим некой третьей переменной (например, c) значение хранимое в a. Таким образом окажется, что одно и то же значение будет сохранено в двух переменных.
Запишем значение переменной b в a. Таким образом, мы «затрем» прежнее содержимое a, а значение b будет храниться в двух переменных.
Однако значение a не потеряно, т.к. заранее было сохранено в c. Теперь мы можем присвоить переменной b значение хранимое в c.
В результате данных трех присвоений окажется, что в переменной a будет значение b, в b — значение a.
2-й способ. Путем арифметических операций
Запишем в переменную a сумму значений двух переменных: a и b.
Переменной b присвоить разность между новым значением переменной a и значением b. Таким образом в b окажется старое значение a.
Переменной a присвоить разность между ее текущим значением и новым значением переменной b. В результате в a окажется старое значение b.
Pascal
обмен значений переменных паскаль
// 1-й способ:
var a,b,c: integer;
begin
readln(a);
readln(b);
writeln('a=',a,'; b=',b);
c := a;
a := b;
b := c;
writeln('a=',a,'; b=',b);
end.
// 2-й способ:
var a,b: integer;
begin
readln(a);
readln(b);
writeln('a=',a,'; b=',b);
a := a + b;
b := a - b;
a := a - b;
writeln('a=',a,'; b=',b);
end.
5
6
a=5; b=6
a=6; b=5
Язык Си
обмен значений переменных си
// 1-й способ
#include
main() {
int a,b,c;
scanf("%d", &a);
scanf("%d", &b);
printf("a=%d; b=%d\n", a, b);
c = a;
a = b;
b = c;
printf("a=%d; b=%d\n", a, b);
}
// 2-й способ
#include
main() {
int a,b,c;
scanf("%d", &a);
scanf("%d", &b);
printf("a=%d; b=%d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("a=%d; b=%d\n", a, b);
}
9
0
a=9; b=0
a=0; b=9
Python
обмен значений переменных python
# 1-й способ:
a = int(input())
b = int(input())
print('a=%d; b=%d' % (a,b))
c = a
a = b
b = c
print('a=%d; b=%d' % (a,b))
# 2-й способ:
a = int(input())
b = int(input())
print('a=%d; b=%d' % (a,b))
a = a + b
b = a - b
a = a - b
print('a=%d; b=%d' % (a,b))
# 3-й способ:
a = int(input())
b = int(input())
print('a=%d; b=%d' % (a,b))
a,b = b,a
print('a=%d; b=%d' % (a,b))
5
2
a=5; b=2
a=2; b=5
КуМир
| 1-й способ:
алг обмен_значений
нач
цел а, б, в
ввод а
ввод б
вывод "а=",а,"; б=",б, нс
в := а
а := б
б := в
вывод "а=",а,"; б=",б, нс
кон
| 2-й способ:
алг обмен_значений
нач
цел а,б
ввод а
ввод б
вывод "а=",а,"; б=",б, нс
а := а + б
б := а - б
а := а - б
вывод "а=",а,"; б=",б, нс
кон
5
88
а=5; б=88
а=88; б=5
Basic-256
# 1-й способ:
input a
input b
print "a=" + a + "; b=" + b
c = a
a = b
b = c
print "a=" + a + "; b=" + b
# 2-й способ:
input a
input b
print "a=" + a + "; b=" + b
a = a + b
b = a - b
a = a - b
print "a=" + a + "; b=" + b
6
4
a=6; b=4
a=4; b=6
Подписаться
1 Комментарий
Новые
СтарыеПопулярные
Межтекстовые Отзывы
Посмотреть все комментарии
аноним
1 год назад
int a = Convert.ToInt32(Console.ReadLine()); int b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(«Исходные данные a = » + a + «, b = » + b); Console.Write(«Обмен значений a = » + b + «, b = » + a);
Pascal
обмен значений переменных паскаль
// 1-й способ:
var a,b,c: integer; begin readln(a); readln(b); writeln('a=',a,'; b=',b); c := a; a := b; b := c; writeln('a=',a,'; b=',b); end.
// 2-й способ:
var a,b: integer; begin readln(a); readln(b); writeln('a=',a,'; b=',b); a := a + b; b := a - b; a := a - b; writeln('a=',a,'; b=',b); end.
5 6 a=5; b=6 a=6; b=5
Язык Си
обмен значений переменных си
// 1-й способ
#include main() { int a,b,c; scanf("%d", &a); scanf("%d", &b); printf("a=%d; b=%d\n", a, b); c = a; a = b; b = c; printf("a=%d; b=%d\n", a, b); }
// 2-й способ
#include main() { int a,b,c; scanf("%d", &a); scanf("%d", &b); printf("a=%d; b=%d\n", a, b); a = a + b; b = a - b; a = a - b; printf("a=%d; b=%d\n", a, b); }
9 0 a=9; b=0 a=0; b=9
Python
обмен значений переменных python
# 1-й способ:
a = int(input()) b = int(input()) print('a=%d; b=%d' % (a,b)) c = a a = b b = c print('a=%d; b=%d' % (a,b))
# 2-й способ:
a = int(input()) b = int(input()) print('a=%d; b=%d' % (a,b)) a = a + b b = a - b a = a - b print('a=%d; b=%d' % (a,b))
# 3-й способ:
a = int(input()) b = int(input()) print('a=%d; b=%d' % (a,b)) a,b = b,a print('a=%d; b=%d' % (a,b))
5 2 a=5; b=2 a=2; b=5
КуМир
| 1-й способ:
алг обмен_значений нач цел а, б, в ввод а ввод б вывод "а=",а,"; б=",б, нс в := а а := б б := в вывод "а=",а,"; б=",б, нс кон
| 2-й способ:
алг обмен_значений нач цел а,б ввод а ввод б вывод "а=",а,"; б=",б, нс а := а + б б := а - б а := а - б вывод "а=",а,"; б=",б, нс кон
5 88 а=5; б=88 а=88; б=5
Basic-256
# 1-й способ:
input a input b print "a=" + a + "; b=" + b c = a a = b b = c print "a=" + a + "; b=" + b
# 2-й способ:
input a input b print "a=" + a + "; b=" + b a = a + b b = a - b a = a - b print "a=" + a + "; b=" + b
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(«Исходные данные a = » + a + «, b = » + b);
Console.Write(«Обмен значений a = » + b + «, b = » + a);