Вывод определенных чисел из числовой последовательности (!без массива!) - C (СИ)
Формулировка задачи:
[COLOR="Indigo"]Пользователь вводит ряд чисел (их количество он определяет сам, их количество находится в пределах от 1 до 100 включительно и является целым). Числа, которые вводит пользователь, являются целыми числами находящимися в диапазоне от 1 до 1000 включительно. Напишите программу, которая выводит максимальное чётное и минимальное нечетное число из тех что ввёл пользователь. Пользователь вводит числа не по порядку, а в разнобой.
Решение задачи: «Вывод определенных чисел из числовой последовательности (!без массива!)»
textual
Листинг программы
#include<stdio.h>
int main(){
int x,N,max=0,min=0,i=0; //i - счетчик элементов
printf("Enter N: "); //Задаем количество чисел
scanf("%i",&N);
printf("Enter the numbers from 1 to 100: \n");
while (i<N){ //Ввод осуществляется до тех пор, пока число меньше заданного. Строгое равенство потому, что счет ведется с 0
do {
scanf("%i",&x);
if (x>=1 && x<=100){ //Проверка на принадлежность указанному диапазону
if (x%2==0 && x>max) max=x; //
i++;
}
else printf ("\nError! The invalid number. Try again.\n"); //Вывод сообщения об ошибке в случае несоответствия числа диапазону
}
while (x%2==0); //Цикл, позволяющий задать начальный минимум нечетных чисел
min=x; //Присвоение начального минимального значения первого нечетного числа
i--; //Понижаем счетчик
if (x>=1 && x<=100){ //Проверка на принадлежность указанному диапазону
if (x%2==0 && x>max) max=x; //Поиск максимального нечетного и минимального четного числа
if (x%2!=0 && x<min) min=x;
i++;
}
else printf ("\nError! The invalid number. Try again.\n"); //Вывод сообщения об ошибке
}
printf ("Min = %i\nMax = %i",min,max); //Вывод результатов
return 0;
}
Объяснение кода листинга программы
- Ввод количества чисел, которые необходимо ввести.
- Ввод чисел от 1 до 100.
- Проверка каждого введенного числа на принадлежность диапазону от 1 до 100.
- Если число принадлежит диапазону, то проверка на четность.
- Если число нечетное и больше максимального нечетного числа, то обновление максимального нечетного числа.
- Если число четное и больше максимального четного числа, то обновление максимального четного числа.
- Если число нечетное и меньше минимального нечетного числа, то обновление минимального нечетного числа.
- Если число четное и меньше минимального четного числа, то обновление минимального четного числа.
- После ввода всех чисел вывод минимального и максимального чисел.