Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба8 / Laba 8 (1)
.cpp#include <iostream>
#include <cstring>
#include <locale>
using namespace std;
// Основная шаблонная функция для массивов
template<typename T>
T max(T arr[], int size) {
T max_val = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
}
}
return max_val;
}
// Специализация для массивов строк (const char*)
template<>
const char* max<const char*>(const char* arr[], int size) {
const char* max_str = arr[0];
for (int i = 1; i < size; i++) {
if (strlen(arr[i]) > strlen(max_str)) {
max_str = arr[i];
}
}
return max_str;
}
// Отдельная функция для сравнения двух строк
const char* max_string(const char* a, const char* b) {
return strlen(a) > strlen(b) ? a : b;
}
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
// Тестирование с целыми числами
int int_arr[] = {1, 5, 3, 9, 2};
cout << "Максимальное int: " << max(int_arr, 5) << endl;
// Тестирование с double
double double_arr[] = {1.1, 5.5, 3.3, 9.9, 2.2};
cout << "Максимальное double: " << max(double_arr, 5) << endl;
// Тестирование с long
long long_arr[] = {100L, 500L, 300L, 900L, 200L};
cout << "Максимальное long: " << max(long_arr, 5) << endl;
// Тестирование со строками
const char* str_arr[] = {"apple", "banana", "cherry", "date"};
cout << "Самая длинная строка: " << max(str_arr, 4) << endl;
// Тестирование сравнения двух строк
cout << "Из 'hello' и 'world' длиннее: " << max_string("hello", "world") << endl;
return 0;
}
Соседние файлы в папке Лаба8
