Четверг, 28.11.2024, 21:49
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1313
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

примеры решения задач на одномерные массивы

Пример 1

Дан  вещественный  массив  размера  N.  Размер массива   и  значения   его  элементов  вводятся пользователем.  Найти  сумму  всех   локальных минимумов    массива.   Локальный   минимум – элемент  массива  меньший  по  значению  двух соседних элементов данного массива (исключая крайние элементы).

#include <stdio.h>

int main(int argc, char *argv[])

{

  int N;

  printf("Введите количество элементов: ");

  scanf("%d",&N);

  if(N<3) {printf("Мало элементов!\n"); return 0;}

  printf("Введите массив: ");

  double arr[N];

  for(int i=0;i<N;i++) scanf("%lf",&arr[i]);

  double summa = 0.0;

  for(int i=1;i<N-1;i++)

    if((arr[i]<arr[i-1])&&(arr[i]<arr[i+1]))

      summa += arr[i];

  printf("Сумма локальных минимумов: %.3lf\n",summa);

  return 0;

}

Пример 2

Дан    целочисленный   массив   размера   N. Размер массива  и  его  элементы  вводятся пользователем. Упорядочить все элементы, расположенные        до       максимального элемента массива по возрастанию, а после максимального элемента по убыванию.

#include <stdio.h>

int main(int argc, char *argv[])

{

  int N;

  printf("Введите количество элементов: ");

  scanf("%d",&N);

  if(N<3) {printf("Слишком мало элементов!\n"); return 0;}

  printf("Введите массив: ");

  int arr[N];

  for(int i=0;i<N;i++) scanf("%d",&arr[i]);

  int pos = 0;

  for(int i=1;i<N;i++)

    if(arr[i]>arr[pos])

      pos = i;

    if(pos > 1){

       int flag = 1;

       while(flag){

           flag = 0;

           for(int i=0;i<pos-1;i++)

              if(arr[i]>arr[i+1]){

                  int r = arr[i];

                  arr[i] = arr[i+1];

                  arr[i+1] = r;

                  flag = 1;

              }

           }

       }

   if(pos < N-2){

      int flag = 1;

      while(flag){

          flag = 0;

          for(int i=pos+1;i<N-1;i++)

              if(arr[i]<arr[i+1]){

                  int r = arr[i];

                  arr[i] = arr[i+1];

                  arr[i+1] = r;

                  flag = 1;

              }

           }

        }

    printf("Результат: ");

    for(int i=0;i<N;i++) printf("%d ",arr[i]);

    printf("\n");

    return 0;

  }

Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---