Итоги: указатели как аргументы функций
Часть раздела Logic & Flow путешествия по C на Coddy — урок 30 из 63.
Задание
ЛегкоНапишите программу на языке C, которая реализует функцию для поиска минимального и максимального значений в массиве с использованием аргументов-указателей. Ваша программа должна:
- Создать функцию с именем
findMinMax, которая принимает четыре параметра:- Целочисленный массив
- Размер массива
- Указатель на целое число для хранения минимального значения
- Указатель на целое число для хранения максимального значения
- Внутри функции
findMinMaxвыполнить итерацию по массиву, чтобы найти минимальное и максимальное значения - Использовать оператор разыменования для сохранения минимального значения по адресу, на который указывает указатель min
- Использовать оператор разыменования для сохранения максимального значения по адресу, на который указывает указатель max
- В функции
mainсчитать целое числоn, представляющее количество элементов в массиве - Считать
nцелых чисел и сохранить их в массиве - Объявить две целочисленные переменные
minValueиmaxValueдля хранения результатов - Вызвать функцию
findMinMax, передав массив, его размер и адресаminValueиmaxValue - Вывести результаты в формате:
Minimum: [value]иMaximum: [value]
Например, если на вход подается:
5
12 7 23 4 18Ваш вывод должен быть:
Minimum: 4
Maximum: 23Эта задача демонстрирует мощную технику использования нескольких аргументов-указателей для возврата нескольких значений из одного вызова функции, что позволяет функции изменять переменные в области видимости вызывающей функции.
Попробуйте сами
#include <stdio.h>
// TODO: Напишите здесь вашу функцию findMinMax
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int minValue, maxValue;
// TODO: Вызовите здесь функцию findMinMax
printf("Minimum: %d\n", minValue);
printf("Maximum: %d\n", maxValue);
return 0;
}Все уроки раздела Logic & Flow
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функции