Обмен значений численных переменных

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

Существует два способа обменять значения переменных. Первый подходит для любых типов данных, а второй — только для численных.

1-й способ. Через «буферную» переменную

  1. Пусть первое введенное значение присвоено переменной a, второе — b.
  2. Присвоим некой третьей переменной (например, c) значение хранимое в a. Таким образом окажется, что одно и то же значение будет сохранено в двух переменных.
  3. Запишем значение переменной b в a. Таким образом, мы «затрем» прежнее содержимое a, а значение b будет храниться в двух переменных.
  4. Однако значение a не потеряно, т.к. заранее было сохранено в c. Теперь мы можем присвоить переменной b значение хранимое в c.

В результате данных трех присвоений окажется, что в переменной a будет значение b, в b — значение a.

2-й способ. Путем арифметических операций

  1. Запишем в переменную a сумму значений двух переменных: a и b.
  2. Переменной b присвоить разность между новым значением переменной a и значением b. Таким образом в b окажется старое значение a.
  3. Переменной a присвоить разность между ее текущим значением и новым значением переменной b. В результате в a окажется старое значение b.

Pascal

Язык Си

Python

КуМир

Basic-256

Подписаться
Уведомить о
guest

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



6
4
a=6; b=4
a=4; b=6