Введение
Перестановка двух чисел означает обмен их значениями. В этом практическом занятии мы научимся переставлять два числа на языке C различными методами, такими как с использованием временной переменной, сложения и вычитания, битовых операторов, умножения и деления.
Примечание: вам нужно самостоятельно создать файл
~/project/main.c, чтобы практиковать программирование и научиться компилировать и запускать его с использованием gcc.
cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main
Использование временной переменной
Мы можем поменять местами два числа с использованием временной переменной, выполнив следующие шаги:
- Объявить три переменные
x,yиtemp. - Присвоить значения
xиy. - Сохранить значение
xвtemp. - Присвоить значение
yпеременнойx. - Присвоить значение
tempпеременнойy. - Вывести значения
xиy.
#include <stdio.h>
int main() {
int x = 5, y = 7, temp;
// Шаг 3
temp = x;
// Шаги 4 и 5
x = y;
y = temp;
// Шаг 6
printf("После перестановки x = %d и y = %d\n", x, y);
return 0;
}
Использование сложения и вычитания
Мы можем поменять местами два числа с использованием сложения и вычитания, выполнив следующие шаги:
- Присвоить значения
xиy. - Сложить
xиyи присвоить результатx. - Вычесть из
xисходное значениеyи присвоитьy. - Вычесть из нового значения
xисходное значениеyи присвоитьx. - Вывести значения
xиy.
#include <stdio.h>
int main() {
int x = 5, y = 7;
// Шаги 2 и 3
x = x + y;
y = x - y;
// Шаг 4
x = x - y;
// Шаг 5
printf("После перестановки x = %d и y = %d\n", x, y);
return 0;
}
Использование битовых операторов
Мы можем поменять местами два числа с использованием битовых операторов, выполнив следующие шаги:
- Присвоить значения
xиy. - Выполнить операцию исключающего ИЛИ (
XOR) дляxиyи присвоить результатx. - Выполнить операцию исключающего ИЛИ для нового значения
xиyи присвоить результатy. - Выполнить операцию исключающего ИЛИ для нового значения
xиyи присвоить результатx. - Вывести значения
xиy.
#include <stdio.h>
int main() {
int x = 5, y = 7;
// Шаги 2 и 3
x = x ^ y;
y = x ^ y;
// Шаг 4
x = x ^ y;
// Шаг 5
printf("После перестановки x = %d и y = %d\n", x, y);
return 0;
}
Использование умножения и деления
Мы можем поменять местами два числа с использованием умножения и деления, выполнив следующие шаги:
- Присвоить значения
xиy. - Умножить
xнаyи присвоить результатx. - Разделить новое значение
xнаyи присвоить результатy. - Разделить новое значение
xна новое значениеyи присвоить результатx. - Вывести значения
xиy.
#include <stdio.h>
int main() {
int x = 5, y = 7;
// Шаги 2 и 3
x = x * y;
y = x / y;
// Шаг 4
x = x / y;
// Шаг 5
printf("После перестановки x = %d и y = %d\n", x, y);
return 0;
}
Резюме
В этом практическом занятии мы узнали, как поменять местами два числа четырьмя различными методами: с использованием временной переменной, сложения и вычитания, битовых операторов и умножения и деления. Перестановка двух чисел полезна в программировании, когда мы хотим изменить порядок двух значений или выполнить операции, требующие обмена значениями двух переменных.



