Что такое перестановка двух чисел?

Перестановкой двух чисел называют обмен значениями двух переменных. Например, переменная num1 содержит значение 20, а num2 содержит значение 40. После перестановки значения переменных num1 и num2 будут равны 40 и 20 соответственно.

Алгоритм

Разберем пошагово, как прийти к решению:

СТАРТ Var1, Var2, Temp.

Шаг 1 → значение Var1 копируется в Temp.

Шаг 2 → значение Var2 копируется в Var1.

Шаг 3 → значение Temp копируется в Var2.

СТОП.

Блок-схема

Объяснение программы

  1. Сначала обычно передаются #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);
}

На выходе получаем:

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи VIGNESWARAN.S: Swapping of two numbers in C

Предыдущая статьяАвтоматизация: друг или враг дизайнера?
Следующая статьяЧто стоит знать дизайнеру перед первым хакатоном