Вывести на экран все элементы массива, для которых выполняется условие - C (СИ)
Формулировка задачи:
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры. Вывести на экран все элементы массива аi, для которых выполняется условие ai-1*<*ai*>*ai+1.
Не работает, помогите:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *a, i, n, k;
system("chcp 1251");
system("cls");
printf("Введите количество элементов массива: ");
scanf_s("%d", &n);
a = (int*)malloc(n*sizeof(int));
for (i = 0; i < n; i++) {
printf("a[%d]= ", i);
scanf_s("%d", &a[i]);
}
k = 0;
for (i = 0; i < n; i++)
{
if (a[i - 1]<a[i]>a[i + 1])
{
k = a[i];
}
}
printf("%d\n", k);
getchar(); getchar();
return 0;
}Решение задачи: «Вывести на экран все элементы массива, для которых выполняется условие»
textual
Листинг программы
if ((a[i - 1] <a[i]) && (a[i] > a[i + 1]))
Объяснение кода листинга программы
В данном коде выполняется условие, которое проверяет, является ли текущий элемент массива a минимумом. Если это так, то он выводится на экран. Вот список действий:
- Создается массив
aтипа double. - Задаются значения для элементов массива
a. - Перебираются все элементы массива
aс помощью цикла for. - Для каждого элемента выполняется проверка условия: ((a[i - 1] <a[i]) && (a[i] > a[i + 1])).
- Если условие выполняется, то текущий элемент массива
aвыводится на экран. - Код заканчивается.