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

Ответы на вопрос

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]);
}



Приведу пример кода на языке C, который решает данную задачу:
```c
#include
int main() { float a[20] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0}; float b[30] = {1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0}; float c[30]; int c_index = 0;
// Переносим элементы массива B в массив C, исключая элементы, которые встречаются в массиве A for (int i = 0; i < 30; i++) { int match_found = 0; // флаг для обозначения, было ли найдено совпадение элемента
for (int j = 0; j < 20; j++) { if (b[i] == a[j]) { match_found = 1; // нашли совпадение break; } }
if (!match_found) { c[c_index] = b[i]; // переносим элемент из B в C c_index++; } }
// Выводим элементы массива C for (int i = 0; i < c_index; i++) { printf("%.2f ", c[i]); } printf("\n");
// Удаляем элементы массива A, которые также присутствуют в C for (int i = 0; i < 20; i++) { int match_found = 0; // флаг для обозначения, было ли найдено совпадение элемента
for (int j = 0; j < c_index; j++) { if (a[i] == c[j]) { match_found = 1; // нашли совпадение break; } }
if (!match_found) { printf("%.2f ", a[i]); // выводим элемент, который не встречается в C } } printf("\n");
// Удаляем элементы массива B, которые также присутствуют в C for (int i = 0; i < 30; i++) { int match_found = 0; // флаг для обозначения, было ли найдено совпадение элемента
for (int j = 0; j < c_index; j++) { if (b[i] == c[j]) { match_found = 1; // нашли совпадение break; } }
if (!match_found) { printf("%.2f ", b[i]); // выводим элемент, который не встречается в C } } printf("\n");
return 0; } ```
Программа создает исходные массивы `a` и `b`, а также массив `c`, который будет содержать перенесенные элементы из массива `b`. Затем она ищет совпадения элементов в массивах `a` и `b`, переносит элементы из `b` в `c`, и выводит содержимое массива `c`. Далее программа удаляет элементы из массивов `a` и `b`, которые встречаются в массиве `c`, и выводит оставшиеся элементы в массивах `a` и `b`.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili