Заданы массивы действительных чисел а1,а2,…,а20 и b1,b2,…,b30. Перенести в массив С те...

0 голосов
92 просмотров

Заданы массивы действительных чисел а1,а2,…,а20 и b1,b2,…,b30. Перенести в массив С те элементы массива В, которые встречаются в массиве А, удалив их и из массива А, и из массива В.
Нужен код на языке Си.


Информатика (81 баллов) | 92 просмотров
0

под удалить подразумевается сдвинуть все элементы, находящиеся после удаляемого элемента, влево, или просто удаляемый элемент приравнять нулю?

0

Приравнять к 0.

Дан 1 ответ
0 голосов

#include

int main() {
 int a[20], b[30], c[20], lenC = 0;
 for(int i = 0; i < 20; i++) scanf("%d", &a[i]);
 for(int i = 0; i < 30; i++) scanf("%d", &b[i]);
 for(int i = 0; i < 30; i++)
   for(int j = 0; j < 20; j++)
     if(b[i] == a[j]) {
        c[i] = b[i];
        lenC++;
        for(int k = j; k < 20; k++)
          if(a[k] == b[i]) a[k] = 0;
        b[i] = 0;
        break;
      }
  for(int i = 0; i < lenC; i++) printf("%d ", c[i]);
}

(4.6k баллов)
0

вот и я о том же

0

понял

0

секунду

0

надо не c[i] = b[i] , а c[lenC] = b[i];

0

ну и наверное все-таки цикл, который я добавил все-таки не нужен по k

0

а просто a[j] = 0

0

мусор был потому, что массив С заполнялся не подряд а кусками, а вывод просили подряд

0

поэтому для него нужен свой счетчик lenC

0

изменить ответ, к сожалению не могу, почему-то нет доступа

0

Напишите мне в личку.