Простая задача на функции - C (СИ) (70266)
Формулировка задачи:
Данные натуральные числа n, m (n, m> 2), действительные числа А1, А2, ..., Аn; В1, В2, .., Bm; С1, С2, ..., С11. Вычислить L = mах [min (В1, В2, ..,, Вm), min (С1, С2, ..., С11), min (А1, А2, ..., Аn)].
Поиск минимального элемента в массиве оформить в виде подпрограммы.
Указание. тип (А1, А2, ..., Аn) - минимальный элемент в массиве А1, А2, ..., Аn. Сначала находим минимальный элемент в каждом массиве, затем из найденных трех чисел выбираем максимальное.
использовать исключительно функции нужно
Решение задачи: «Простая задача на функции»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> double min_arr(double *mas, int mas_size) { double min = mas[0]; int i = 0; for(i=0; i < mas_size; i++) if(mas[i]<min) min = mas[i]; return min; } double max_num(double a, double b, double c) { double max = 0; if(a > b && a > c) max = a; else if(b > a && b > c) max = b; else max = c; return max; } int main() { int n,m; int i; double C[11]; double *A,*B; double min1, min2, min3, max; printf("n = "); scanf("%d", &n); printf("m = "); scanf("%d", &m); if(n <= 2 || m <= 2) return 1;// Выходим A = (double*)calloc(n, sizeof(double)); B = (double*)calloc(m, sizeof(double)); printf("Input A:\n"); for(i = 0; i < n; i++) scanf("%lf",&A[i]); printf("Input B:\n"); for(i = 0; i < m; i++) scanf("%lf",&B[i]); printf("Input C:\n"); for(i = 0; i < 11; i++) scanf("%lf",&C[i]); min1 = min_arr(A,n); min2 = min_arr(B,m); min3 = min_arr(C,11); printf("minA = %lf, minB = %lf, minC = %lf \n", min1, min2, min3); max = max_num(min1, min2, min3); printf("max[minA, minB, minC] = %lf", max); free(A); free(B); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с математическими функциями и для работы с памятью
- Функция min_arr принимает на вход массив чисел и его размер. Находит минимальное значение в массиве
- Функция max_num принимает на вход три числа и возвращает наибольшее из них
- В функции main считываем два числа n и m с помощью функции scanf. Проверяем, что они больше или равны 2, иначе выходим из программы
- Выделяем память под массивы A и B с помощью функции calloc. Если память выделить не удалось, то выходим из программы
- Считываем значения в массивы A и B с помощью функции scanf
- Считываем значения в массив C с помощью функции scanf
- Находим минимальное значение в массиве A, B и C с помощью функции min_arr и сохраняем их в переменные min1, min2 и min3 соответственно
- Находим максимальное значение из min1, min2 и min3 с помощью функции max_num и сохраняем его в переменную max
- Выводим значения min1, min2, min3 и max на экран с помощью функции printf
- Освобождаем память, выделенную под массивы A и B, с помощью функции free
- Возвращаем 0 из функции main, что означает успешный вывод данных
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д