Удалить из массива те элементы, которые меньше (min+max) /2 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите с задачей. С массивами проблемы постоянные... Дан массив a1,...,a20. Удалить из него те элементы, которые меньше (min+max)/2.

Решение задачи: «Удалить из массива те элементы, которые меньше (min+max) /2»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
#include <malloc.h>
#include <process.h>
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    int *mas,*b;
    int i, n, min, max,k=0;
    printf("введите n:");
    scanf("%d",&n);
    
 
    if (n==NULL)
        {
            puts("предел размерности");
            exit(0);
        }
    
    else
        {
            mas=new int [n];
            b=new int [n];
            for (i=0;i<n;i++)
            {
                printf("\n mas[%d]=",i);
                scanf("%d",mas+i);
            }
        }
    min=*(mas+0);
    max=*(mas+0);
    //находим минимум
    for (i=0;i<n;i++)
        if(*(mas+i)<min)
            min=*(mas+i);
    //находим максимум
    for (i=0;i<n;i++)
        if(*(mas+i)>max)
            max=*(mas+i);
    //создаем массив из элементов, которые попадают под условие min+max/2
 
    for (i=0;i<n;i++)
        if(*(mas+i)>((min+max)/2))
        {
            *(b+k)=*(mas+i);
            k++;
        }
//вывод нового массива
    printf("\n Новый массив:\n");
    for (i=0; i<k; i++)  
    {
        printf("%d\n", *(b+i));
    
    }
    delete []mas;
    delete []b;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Устанавливается русскоязычная локаль
  3. Объявляются переменные: массив mas и b для хранения исходных и отфильтрованных данных соответственно, а также переменные i, n, min, max и k для контроля цикла
  4. Пользователю предлагается ввести размерность массива n
  5. Если размерность массива некорректна, программа выводит сообщение об ошибке и завершается
  6. Иначе, выделяется память под массив mas и b
  7. Пользователю предлагается ввести значения элементов массива mas
  8. Находится минимальное и максимальное значение в массиве mas
  9. Создается новый массив b из элементов, которые больше (min+max)/2
  10. Выводится новый массив b
  11. Освобождается память, выделенная под массивы mas и b

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы