Найти в массиве наибольший нечетный элемент - C (СИ)
Формулировка задачи:
Задать массив и найти в нем наибольший нечетный элемент
Решение задачи: «Найти в массиве наибольший нечетный элемент»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
int lim, i = 0, max;
printf("Введите количество элементов в массиве\n");
scanf("%d", &lim);
int mass[lim];
for(i = 0; i < lim; ++i)
{
mass[i] = 0;
}
i = 0;
printf("Введите элемент массива\n");
while(scanf("%d", &mass[i]) && i < lim-1)
{
printf("Введите следующий элемент массива или другую клавишу для окончания ввода\n");
++i;
}
for(i = 0, max = 0; i < lim; ++i)
{
if(mass[i] > max && mass[i]%2 != 0)
{
max = mass[i];
}
}
if(max == 0)
{
printf("В массиве нет нечетных чисел\n");
}
else if(max != 0)
{
printf("Максимальный нечетный элемент массива = %d\n", max);
}
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций ввода-вывода
- Объявляем функцию main, которая не принимает аргументов
- Объявляем переменные:
- lim (количество элементов в массиве)
- i (итератор для цикла)
- max (максимальный нечетный элемент массива)
- Выводим сообщение и призыв к вводу количества элементов в массиве
- Считываем количество элементов в массиве с помощью функции scanf и сохраняем его в переменной lim
- Создаем массив mass типа int с переменной lim элементами
- Заполняем массив mass нулями с помощью цикла for
- Выводим сообщение и призыв к вводу первого элемента массива
- Считываем элементы массива с помощью цикла while, который завершается при вводе меньшего количества элементов, чем было указано, или при нажатии клавиши Enter
- Проверяем каждый элемент массива на нечетность и если он больше текущего максимального нечетного элемента, то обновляем max
- После завершения цикла while выводим сообщение о том, что в массиве нет нечетных чисел
- Если max не равно нулю, то выводим сообщение с максимальным нечетным элементом массива
- Возвращаем 0, чтобы указать, что программа успешно завершилась