Перестановка двух чисел на Си



Книга Перестановка двух чисел на Си

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


Перестановкой двух чисел называют обмен значениями двух переменных. Например, переменная 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("
c program to perform swapping of two numbers using UDF
");
printf("Enter numbers one by one
");
scanf("%d%d",&a,&b);
printf("
Before swapping,the values are %d %d",a,b);
swap(a,b);
printf("

After 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("
After 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("
c program to perform swapping of two numbers using UDF
");
printf("Enter numbers one by one
");
scanf("%d%d",&a,&b);
printf("
Before swapping,the values are %d %d",a,b);
swap(a,b);
printf("

After 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("
After swapping,the values are %d %d",x,y);
}

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




1099   0  

Comments

    Ничего не найдено.