Проверка элементов массива на четность/нечетность - C (СИ)
Формулировка задачи:
Есть одномерный массив. Число елементов вводим с клавы и каждый елемент массива тоже вводим. Потом нужно проверить все эти елементы на честность/нечентность и четные умножить на минимальный елемент, а нечетные умножить на максимальный.
вот код. но там вконце где три цикла, я походу неправильно проверил на четность/ нечетность. как исправить?
#include <stdio.h> #include <math.h> int main () { int n=0, mas[n], i=0, min=0, max=0, x=0, y=0; printf("Vvedite N:"); scanf("%i",&n); for (i=0;i<n;i++) { printf("Vvedite mas%i = ", i); scanf("%i", & mas[i]); } for (i=0; i<n; i++) { if (i==0) min=mas[i]; if(mas[i]<min) min=mas[i]; if(mas[i]>max) max=mas[i]; } printf("\nMin: %d\nMax: %d\n", min, max); for (i=0;i<n;i=i+2) { x=mas[i]*max; mas[i]=x; } for (i=1;i<n;i=i+2) { y=mas[i]*min; mas[i]=y; } for (i=0;i<n;i++) { printf("Element mas=%i\n", mas[i]); } return 0; }
Решение задачи: «Проверка элементов массива на четность/нечетность»
textual
Листинг программы
mas[i] *= ( mas[i] & 1 ) ? max : min;
Объяснение кода листинга программы
Код представлен в виде одного выражения, которое выполняет следующие действия:
mas[i]
- это обращение к элементу массива с индексомi
.mas[i] & 1
- это операция побитового И (AND) между элементом массиваmas[i]
и числом1
. Результатом будет0
, если элемент массива четный, и1
, если элемент массива нечетный.max
иmin
- это константы, которые представляют максимальное и минимальное значения, которые могут быть в массиве. Их значения зависят от постановки задачи и могут быть определены заранее.mas[i] *= ( mas[i] & 1 ) ? max : min;
- это умножение элемента массиваmas[i]
наmax
илиmin
, в зависимости от того, является ли элемент массива четным или нечетным. В итоге, данное выражение выполняет проверку каждого элемента массива на четность/нечетность и изменяет его значение в соответствии с заданными правилами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д