Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2023, 10:51   #1
katya chern
 
Регистрация: 19.04.2022
Сообщений: 7
По умолчанию c++

написать шаблон функции с параметризированным типом для нахождения минимального элемента массива. определить спецификацию шаблона типа char. Написать приложение для поиска минимального элемента для массивов дойных и целых чисел и массива символьных строк
katya chern вне форума Ответить с цитированием
Старый 24.05.2023, 18:00   #2
Килобайт
Новичок
Пользователь
 
Регистрация: 23.05.2023
Сообщений: 13
Лампочка

Код:
#include <iostream>
#include <cstring>

template <typename T>
T findMin(T arr[], int size) {
    T min_el = arr[0];
    for (int i = 1; i < size; i++) {
        if (arr[i] < min_el) {
            min_el = arr[i];
        }
    }
    return min_el;
}

template <>
char* findMin(char* arr[], int size) {
    char* min_el = arr[0];
    for (int i = 1; i < size; i++) {
        if (strcmp(arr[i], min_el) < 0) {
            min_el = arr[i];
        }
    }
    return min_el;
}

int main() {
    int arr1[] = {5, 2, 6, 1, 4};
    double arr2[] = {3.14, 2.71, 1.68, 2.05};
    char* arr3[] = {"hello", "world", "programming", "language"};

    int size1 = sizeof(arr1) / sizeof(arr1[0]);
    int size2 = sizeof(arr2) / sizeof(arr2[0]);
    int size3 = sizeof(arr3) / sizeof(arr3[0]);

    std::cout << "Minimum element in arr1 is: " << findMin(arr1, size1) << std::endl;
    std::cout << "Minimum element in arr2 is: " << findMin(arr2, size2) << std::endl;
    std::cout << "Minimum element in arr3 is: " << findMin(arr3, size3) << std::endl;

    return 0;
}
Цитата:
`findMin`
принимает массив и его размер, а возвращает минимальный элемент массива.

Для типа
Цитата:
`char*`
определена специализация функции, которая использует функцию
Цитата:
`strcmp`
для сравнения строк.

В приложении
Цитата:
`main`
определены три массива: массив целых чисел, массив чисел с плавающей точкой и массив строк. Для каждого массива вызывается функция
Цитата:
`findMin`
, которая выводит наименьший элемент.
Килобайт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск