Menu
Coddy logo textTech

Итоги: указатели как аргументы функций

Часть раздела Logic & Flow путешествия по C на Coddy — урок 30 из 63.

challenge icon

Задание

Легко

Напишите программу на языке C, которая реализует функцию для поиска минимального и максимального значений в массиве с использованием аргументов-указателей. Ваша программа должна:

  1. Создать функцию с именем findMinMax, которая принимает четыре параметра:
    • Целочисленный массив
    • Размер массива
    • Указатель на целое число для хранения минимального значения
    • Указатель на целое число для хранения максимального значения
  2. Внутри функции findMinMax выполнить итерацию по массиву, чтобы найти минимальное и максимальное значения
  3. Использовать оператор разыменования для сохранения минимального значения по адресу, на который указывает указатель min
  4. Использовать оператор разыменования для сохранения максимального значения по адресу, на который указывает указатель max
  5. В функции main считать целое число n, представляющее количество элементов в массиве
  6. Считать n целых чисел и сохранить их в массиве
  7. Объявить две целочисленные переменные minValue и maxValue для хранения результатов
  8. Вызвать функцию findMinMax, передав массив, его размер и адреса minValue и maxValue
  9. Вывести результаты в формате: 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