Каждый четный элемент массива умножить на минимальный его элемент - C (СИ)
Формулировка задачи:
В одномерном массиве, состоящем из n целых элементов, каждый четный элемент умножить на минимальный элемент массива, а нечетный – на максимальный.
Решение задачи: «Каждый четный элемент массива умножить на минимальный его элемент»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main (void) { int *mas, i, min, max, n; printf("Input n:"); scanf("%d", &n); mas=(int *)malloc(n*sizeof(int)); for (i=0; i<n; i++) { printf("Input mas[%i] = ", i+1); scanf("%d", mas+i); if (!i) {min=mas[0]; max=mas[0];} 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++) { if (!(i%20)) printf("\n"); if (mas[i]%2) mas[i]*=max; else mas[i]*=min; printf("mas[%d]= %d\n", i+1, mas[i]); } free(mas); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
—
n
- для хранения количества элементов в массиве; —mas
- для хранения адреса начала массива; —i
- для хранения индекса элемента массива; —min
иmax
- для хранения минимального и максимального значений массива соответственно. - Пользователю предлагается ввести количество элементов в массиве.
- Массив
mas
динамически выделяется с помощьюmalloc
. - В цикле пользователю предлагается ввести значение каждого элемента массива.
- Если это первый элемент, то считаются значения
min
иmax
. - В процессе ввода элементов, в цикле, ищутся минимальное и максимальное значения массива.
- После ввода всех элементов, выводятся значения
min
иmax
. - В цикле, для каждого элемента массива, если он нечетный, то он умножается на
max
, если четный - наmin
. - Выводится обновленный массив.
- Массив освобождается с помощью
free
. - Программа возвращает 0, заканчивая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д