Удалить из массива все одинаковые вхождения элементов, оставив их по одному - C (СИ) (72666)

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

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

ТЗ: дан массив А(n). Удалить из массива все одинаковые вхождения элементов, оставив их по одному. Мой код удаляет все повторяющиеся элементы полностью. Помогите исправить.
Листинг программы
  1. #include<stdio.h>
  2. #include<time.h>
  3. int main(){
  4. int a[20];
  5. for (int i=0; i<5; i++){
  6. printf("a[%d]=",i);
  7. scanf("%d", &a[i]);
  8. }
  9. printf("\n");
  10. for (int i=0; i<5; i++){
  11. bool flag=true;
  12. for (int j=0; j<5; j++)
  13. if (i-j!=0 && a[i]==a[j]) flag=false;
  14. if (flag) printf("%d ",a[i]);
  15. }
  16. return 0;
  17. }

Решение задачи: «Удалить из массива все одинаковые вхождения элементов, оставив их по одному»

textual
Листинг программы
  1. for(i=0; i<5; i++) {
  2.   for(j=0; j<i; j++)
  3.     if (a[i]==a[j]) break;
  4.   if (j==i) printf("%d ", a[i]);
  5. }

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

В данном коде выполняется проверка наличия повторяющихся элементов в массиве и их удаление.

  1. Создается два вложенных цикла. Первый цикл выполняется 5 раз, второй - столько раз, сколько выполнится первый.
  2. Внутри второго цикла проверяется равенство текущего элемента массива с каждым предыдущим элементом. Если равенство найдено, то из второго цикла выход выполняется с помощью оператора break.
  3. Если второй цикл был выполнен полностью, то это означает, что в массиве не было найдено повторяющихся элементов, и текущий элемент массива (a[i]) выводится на экран с помощью функции printf.
  4. Если второй цикл был прерван оператором break, то на экран выводится значение переменной i, которое является индексом первого вхождения элемента, подлежащего удалению.
  5. В конце программы отсутствует закрывающая фигурная скобка, что говорит о наличии ошибки в коде.

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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