Удаление элементов массива - C (СИ) (70312)

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

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

Помогите пожалуйста, надо удалить элементы равные К и вывести массив, я чуток начал помогите исправить ошибки и вообще сделать задание
Листинг программы
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <conio.h>
  5. int main()
  6. {
  7. int a[30], b[30];
  8. int i,j,l, max,min; float k;
  9. printf(" \n введите размер массива а \n");
  10. scanf("%d", &l);
  11. printf(" \n введите элементы массива а");
  12. for (i=0;i<l;i++)
  13. scanf("%d", &a[i]);
  14. max=-999999;
  15. for (i=0;i<l;i++)
  16. {
  17. if(a[i]>max)
  18. max=a[i];
  19. }
  20. min=999999;
  21. for(i=0;i<l;i++)
  22. {
  23. if(a[i]<min)
  24. min=a[i];
  25. }
  26. k=(min+max)/2;
  27. for (i=0;i<l;i++)
  28. {
  29. if(a[i]<k)
  30. if(a[i]>k)
  31. b[i]=a[i];
  32. print("%d",b[i]);
  33. }
  34. return 0;
  35. }

Решение задачи: «Удаление элементов массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. int main()
  6. {
  7.     int *arr, *arr2, N, i, min, max, K, M = 0;
  8.  
  9.     setlocale(LC_ALL, "");
  10.     printf("Введите размер массива а: ");
  11.     scanf("%d", &N);
  12.     arr = malloc(N);
  13.  
  14.     for (i=0; i < N; i++)
  15.     {
  16.         scanf("%d", &arr[i]);
  17.         if (i == 0)
  18.             min = max = arr[i];
  19.         else
  20.         {
  21.             if (min > arr[i])
  22.                 min = arr[i];
  23.             if (max < arr[i])
  24.                 max = arr[i];
  25.         }
  26.     }
  27.  
  28.     K = (min + max) / 2;
  29.     arr2 = malloc(N);
  30.     for (i=0; i < N; i++)
  31.         if (arr[i] != K)
  32.             arr2[M++] = arr[i];
  33.  
  34.     for (i=0; i < M; i++)
  35.         printf("%d ", arr2[i]);
  36.  
  37.     free(arr);
  38.     free(arr2);
  39.     return 0;
  40. }

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

В этом коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h для работы с вводом/выводом
    • stdlib.h для работы с памятью
    • locale.h для установки локали
  2. Создается переменная N типа int, которая будет хранить размер массива.
  3. Массив arr инициализируется с помощью функции malloc(N). malloc выделяет память под массив N элементов.
  4. Происходит заполнение массива arr с помощью цикла for и функции scanf. scanf считывает N целых чисел и сохраняет их в массиве arr.
  5. Начальные значения переменных min и max устанавливаются равными первому считанному значению (arr[0]).
  6. Цикл for выполняет сортировку массива arr по значениям. Если текущее значение arr[i] меньше min, то оно становится новым значением min. Если текущее значение arr[i] больше max, то оно становится новым значением max.
  7. После цикла for вычисляется среднее арифметическое min и max и присваивается переменной K.
  8. Массив arr2 инициализируется с помощью функции malloc(N). malloc выделяет память под массив N элементов.
  9. Цикл for проверяет каждый элемент массива arr. Если элемент не равен K, то он копируется в массив arr2 и M увеличивается на единицу.
  10. Цикл for выводит элементы массива arr2 с помощью функции printf.
  11. Функции free(arr) и free(arr2) освобождают выделенную память.
  12. Функция return 0 завершает работу программы.

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы