C++. Использование указателей в качестве аргументов функции

В C++ указатели можно использовать в качестве аргументов функций. Так, если в роли параметра функции выступает массив, то в функцию передается указатель на его первый элемент. Получается автоматическая передача массива в функцию, используя его адрес. В результате, вызываемые функции могут изменять значения элементов в исходных массивах и возвращать их в главную функцию. Информация о количестве элементов массива должна передаваться через отдельный параметр.


Задача

Из массива целых чисел удалить все простые числа, значение которых меньше среднего арифметического элементов массива. Полученный массив упорядочить по возрастанию.

Решение

Понятно, что алгоритм решения этой задачи без применения функции будет очень громоздким. Разобьем задачу на подзадачи:

  • вычисление среднего арифметического элементов массива;
  • определение простого числа;
  • удаления элемента из массива;
  • упорядочивание массива;

Прототипы функций, которые предназначены для решения подзадач, могут выглядеть так:

  • float sr_arifm(int *x, int n) — вычисляет среднее арифметическое массива x из n элементов (рис. ниже)

Функции в указателях. Kvodo.ru

  • bool prostoe(int n) — проверяет, является ли целое n простым, результат логическое значение true, если число простое, и false в противном случае (рис. ниже);

Функции в указателях. Kvodo.ru

  • void udal(int *x, int m, int*n) — удаляет элемент с номером m в массиве x из n элементов (рис. ниже)

Указатели

  • void upor(int *x, int N, bool pr=true) — сортирует массив x из n элементов по возрастанию или по убыванию, направление сортировки зависит от значения параметра pr, если pr=true, то выполняется сортировка по возрастанию, иначе по убыванию.

Вот так будет выглядеть текст программы:

 


Похожие записи:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля отмечены *