Найти максимальное значение массива - C (СИ) (73194)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
int vvod(int m[5], int i, int max);
int main()
{
setlocale(LC_ALL, "rus");
int m[5];
int c, i, max;
do{
printf("1 - Ввод 1 массива\n");
printf("2 - Ввод 2 массива\n"); // это пока чтобы было, потом доработаю
printf("3 - Выход\n");
printf("Ввод: ");
scanf("%d", &c);
switch(c)
{
case 1:
printf("%d", vvod(m[5], i, max));
break;
default:
printf("Ошибка ввода\n");
break;
}
}while(c == 3);
}
int vvod(int m[5], int i, int max)
{
max = m[0];
for(i = 1; i < 5; i++)
{
printf("Введите число: ");
scanf("%d", m[i]);
if (m[i] > max)
{
max = m[i];
}
}
printf("Максимальное число: %d", max);
return max;
}Решение задачи: «Найти максимальное значение массива»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
#include <limits.h>
enum constants {SZ = 5};
int vvod(int m[], int sz);
int main()
{
int m[SZ];
int c;
setlocale(LC_ALL, "");
do{
printf("1 - Ввод 1 массива\n");
printf("2 - Ввод 2 массива\n"); // это пока чтобы было, потом доработаю
printf("3 - Выход\n");
printf("Ввод: ");
scanf("%d", &c);
switch(c)
{
case 1:
vvod(m, SZ);
break;
default:
printf("Ошибка ввода\n");
break;
}
}while(c != 3);
}
int vvod(int m[], int sz)
{
int i, max;
max = -INT_MAX;
for(i = 0; i < sz; i++)
{
printf("Введите число: ");
scanf("%d", &(m[i]));
if (m[i] > max)
{
max = m[i];
}
}
printf("Максимальное число: %d", max);
return max;
}
Объяснение кода листинга программы
- Объединение всех необходимых заголовочных файлов.
- Создание перечисления для определения размера массива.
- Объявление функции ввода массива.
- Основной цикл программы с использованием do-while, который будет выполняться до тех пор, пока пользователь не введет 3.
- Ввод массива с помощью функции vvod.
- Функция vvod принимает два аргумента: массив и размер массива.
- Внутри функции vvod инициализируется переменная max значением -INT_MAX.
- Затем происходит проход по всем элементам массива с помощью цикла for.
- Каждый элемент массива сравнивается с текущим максимальным значением.
- Если текущий элемент больше максимального значения, то он становится новым максимальным значением.
- После прохода по всем элементам массива выводится максимальное значение.
- Функция возвращает найденное максимальное значение.
- В основной функции после вызова функции vvod происходит проверка введенного значения на предмет ошибки.
- Если введено некорректное значение, выводится сообщение об ошибке.
- Программа завершается после выхода из основного цикла.