Работа с указателями - прокомментировать код - C (СИ)
Формулировка задачи:
у меня такая прозьба объясните пожалуста по подробние что означает каждая строчка этой программы:
За ранее благодарю...
#include <iostream>
void sort(int&,int&,int&);
void main()
{
int a=10,b=-5,c=6;
printf("%d %d %d\n",a,b,c);
sort(a,b,c);
printf("%d %d %d",a,b,c);
printf("\n");
}
void sort(int& a,int& b,int& c)
{
int min=a;
if (min>b) min=b;
if (min>c) min=c;
int max=c;
if (max<a) max=a;
if (max<b) max=b;
b=a+b+c-min-max;
a=min;
c=max;
}Решение задачи: «Работа с указателями - прокомментировать код»
textual
Листинг программы
#include <iostream>
void sort(int&,int&,int&); //объявления прототипа ф-ии sort. Параметрами ф-ии являются ссылки на переменные, содержащие числа которые необходима разместить в порядка возрастания.
void main()
{
int a=10,b=-5,c=6; //задаём значения переменных
printf("%d %d %d\n",a,b,c); //выводим их на экран
sort(a,b,c);//сортируем
printf("%d %d %d",a,b,c);//выводим отсортированные переменные. Т.к. параметрами ф-ии sort является не сами переменные, а ссылки на них, то изменяются сами переменные.
printf("\n");//переводим курсор на новую строку. Необязательно
}
void sort(int& a,int& b,int& c) //тело функции sort
{
//общий алгоритм таков. Т.к. три числа, то понятно что первым будет минимум, третьим максимум, а вторым разность из суммы всех трех чисел минимума и максимума.
//сначала находим min
int min=a; //принимаем, что min это a
if (min>b) min=b;//если не а>b то min b
if (min>c) min=c;// если b>c то min c
int max=c; //тоже самое для максимального
if (max<a) max=a;
if (max<b) max=b;
b=a+b+c-min-max;//находим среднее число как разность из суммы всех трех чисел минимума и максимума.
a=min;//первое есть минимум
c=max;//третье есть максимум
}
Объяснение кода листинга программы
- Включаем заголовочный файл iostream для использования функций вывода и ввода.
- Объявляем прототип функции sort, которая принимает три ссылки на переменные типа int.
- В функции main() задаём значения трём переменным типа int и выводим их на экран.
- Вызываем функцию sort, передав ей три ссылки на переменные a, b и c.
- В функции sort() ищем минимальное значение из трёх переданных чисел и сохраняем его в переменную min.
- Если min больше второго числа, то обновляем значение min вторым числом.
- Если min больше третьего числа, то обновляем значение min третьим числом.
- Ищем максимальное значение из трёх переданных чисел и сохраняем его в переменную max.
- Если max меньше первого числа, то обновляем значение max первым числом.
- Если max меньше второго числа, то обновляем значение max вторым числом.
- Сохраняем в переменную b результат вычисления (a+b+c)-min-max.
- Сохраняем в переменную a значение min.
- Сохраняем в переменную c значение max.
- Выводим на экран значения переменных a, b и c.
- Выводим символ новой строки.
- Возвращаем управление в основную программу.
- Конец функции main()