В одномерном массиве вывести на экран чётные и нечётные по значению элементы - Turbo Pascal (247717)
Формулировка задачи:
В одномерном массиве вывести на экран чётные и нечётные по значению
элементы, а также количество тех и других. Вот такая программа:
На выходе имеем:
Почему массив с нечётными по значению элементами выдаёт нули?
Если программы делать по отдельности на чётные и нечётные, то всё
в порядке. А вот объединить их в одну программу не получилось.
Вроде бы сделано всё правильно. В чём же дело?
Решение задачи: «В одномерном массиве вывести на экран чётные и нечётные по значению элементы»
textual
Листинг программы
uses crt; const N = 10; var A: array [1.. N] of integer; i, k, k1: integer; begin ClrScr; Randomize; writeln(' Введённый массив:'); for i:= 1 to N do begin A[i]:=-5+Random(50); write(A[i]:3); if (A[i] mod 2 = 0) then inc(k) else inc(k1); end; writeln; writeln(' Кол. чётных по значению эл-в: ' , k); writeln(' Кол. нечётных по значению эл-в: ' , k1); if k=0 then write('Все элементы масива нечетные') else if k1=0 then write('Все элементы массива четные') else begin writeln(' Массив с чётными по значению элементами: '); for i:= 1 to N do if (A[i] mod 2 = 0) then write(A[i]:3); writeln; writeln(' Массив с нечётными по значению элементами:'); for i:= 1 to N do if (A[i] mod 2 <> 0) then write(A[i]:3); end; readln end.
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
- A - массив на 10 элементов типа integer;
- i, k, k1 - целочисленные переменные для счётчика.
- С помощью функции Randomize инициируется генератор случайных чисел.
- С помощью цикла for выводятся на экран все элементы массива A с шагом 3.
- В каждой итерации цикла к элементам массива A применяется операция модуля 2 (A[i] mod 2), которая возвращает 0, если число чётное, и 1, если число нечётное.
- Если результат равен 0, то к счётчику k прибавляется единица, иначе к счётчику k1 прибавляется единица.
- После завершения цикла выводится на экран количество чётных и нечётных элементов массива.
- Если количество чётных элементов равно нулю, то выводится сообщение
Все элементы массива нечетные
. - Если количество нечётных элементов равно нулю, то выводится сообщение
Все элементы массива четные
. - Если же оба счётчика не равны нулю, то выводится сообщение
Массив с чётными по значению элементами:
и последовательно выводятся все чётные элементы массива A. - Затем выводится сообщение
Массив с нечётными по значению элементами:
и последовательно выводятся все нечётные элементы массива A.