Что такое перестановка двух чисел?
Перестановкой двух чисел называют обмен значениями двух переменных. Например, переменная num1
содержит значение 20, а num2
содержит значение 40. После перестановки значения переменных num1
и num2
будут равны 40 и 20 соответственно.
Алгоритм
Разберем пошагово, как прийти к решению:
СТАРТ Var1, Var2, Temp.
Шаг 1 → значение Var1 копируется в Temp.
Шаг 2 → значение Var2 копируется в Var1.
Шаг 3 → значение Temp копируется в Var2.
СТОП.
Блок-схема
Объяснение программы
- Сначала обычно передаются
#include<stdio.h>
и#include<conio.h>
#include<stdio.h>
#include<conio.h>
2. Затем задействуется функция swap
для выполнения операции обмена и объявляются x
и y
:
void swap(int x,int y);
3. Дальше идет функция main
, внутри которой объявляется переменная как a,b
.
→ Для удобства пользователя выводится описание program to perform swapping of two numbers using user define function
(«программа для выполнения перестановки двух чисел с помощью функции, определяемой пользователем») , а в следующей строке — Enter numbers one by one
(«вводите числа по одному»).
→ После чего внутри scanf
обычно передается%d
для типа данных int
.
→ Снова выводится описание Before swapping, the values are
(«до перестановки значения такие»).
→ Затем вызывается функция swap(a,b)
.
Вызов по значению
> В методе вызова по значению значение переменной передается в параметр функции.
> Значение фактического параметра не может быть изменено формальным параметром.
> Для фактических и формальных параметров выделяется различная память, потому что значение фактического параметра копируется в формальный.
→ Затем объявляется третья переменная t
.
→ В ней присваивается значение x
.
→ Дальше x
освобождается.
→ После чего в x
присваивается значение y
.
→ y
освобождается.
→ Затем в y
присваивается значение t
.
→ И в конце происходит обмен значений.
void main()
{
int a,b;
printf("\nc program to perform swapping of two numbers using UDF\n");
printf("Enter numbers one by one\n");
scanf("%d%d",&a,&b);
printf("\nBefore swapping,the values are %d %d",a,b);
swap(a,b);
printf("\n\nAfter swapping in main function,the values are %d %d",a,b);
getch();
}
void swap(int x,int y)
{
int t;
t=x;
x=y;
y=t;
printf("\nAfter swapping,the values are %d %d",x,y);
}
Программа или исходный код
#include<stdio.h>
#include<conio.h>
void swap(int x,int y);
void main()
{
int a,b;
printf("\nc program to perform swapping of two numbers using UDF\n");
printf("Enter numbers one by one\n");
scanf("%d%d",&a,&b);
printf("\nBefore swapping,the values are %d %d",a,b);
swap(a,b);
printf("\n\nAfter swapping in main function,the values are %d %d",a,b);
getch();
}
void swap(int x,int y)
{
int t;
t=x;
x=y;
y=t;
printf("\nAfter swapping,the values are %d %d",x,y);
}
На выходе получаем:
Читайте также:
- Для чего нужен указатель в Си?
- Rust или Си: кто Усэйн Болт в мире программирования?
- TDD и обработка исключений в ASP.NET Core с помощью xUnit
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи VIGNESWARAN.S: Swapping of two numbers in C