2 / 2 / 0
Регистрация: 07.01.2022
Сообщений: 57
1

Функция обнуляющая все элементы второго массива которые встречаются в первом

08.03.2022, 14:00. Показов 1079. Ответов 3
Метки c++ (Все метки)

Задача:
Напишите функцию, которая принимает два массива и их длину. Функция должна обнулить все элементы 2-го массива, которые встречаются в 1-ом. Для решения данной задачи используйте синтаксис указателей.
Пример:
Массив 1:
[3, 6, 4, 1, 4, 8, 2]
Массив 2:
[5, 3, 1, 5, 10, 8]
Массив 2 после работы функции:
[5, 0, 0, 5, 10, 0]
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2022, 14:00
Ответы с готовыми решениями:

Получить третий массив, в который входят все элементы первого массива и те элементы второго, которые не встречались в первом
Задача по теме "массив". "Объединение массивов". Напишите программу, которая запрашивает и вводит...

Функция обнуляющая все элементы массива большие среднего арифметического
Написать функцию, которая в массиве вещественных чисел обнуляет все элементы, которые больше...

Удалить из второго массива элементы которые есть в первом
И так, уважаемые знатоки, у меня есть два массива, вот к примеру : первый массив - 1 6 6 5 8 9 ...

Выведите элементы, которые встречаются в первом списке и не встречаются во втором
Поочередно вводится две последовательности целых чисел, разделенных пробелом. Выведите через пробел...

Массив: Напечатать элементы, которые встречаются в первом и во втором массивах, но не встречаются в третьем
Даны три массива А, В, С. Напечатать элементы, которые встречаются в первом и во втором массивах,...

3
Модератор
Эксперт С++
12088 / 9763 / 5906
Регистрация: 18.12.2011
Сообщений: 26,213
08.03.2022, 16:19 2
Лучший ответ Сообщение было отмечено Raven 1 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
void f(int* first,int nf,int* second,int ns)
{
    for(int* p1=first;p1!=first+nf;++p1)
    {
        for(int* p2=second;p2!=second+ns;++p2)
        {
            if(*p2==*p1)
                *p2=0;
        }
    }
}
1
2 / 2 / 0
Регистрация: 07.01.2022
Сообщений: 57
12.03.2022, 11:25  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
using namespace std;
 
void f(int* first, int nf, int* second, int ns)
{
    for (int* p1 = first; p1 != first + nf; ++p1)
    {
        for (int* p2 = second; p2 != second + ns; ++p2)
        {
            if (*p2 == *p1)
                *p2 = 0;
        }
    }
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Задача 1.\nМассив 1:\n"; // Задача 1
    const int size1 = 7;
    int array1[size1] = { 3, 6, 4, 1, 4, 8, 2 };
    for (int i = 0; i < size1; i++)
    {
        cout << array1[i] << " ";
    }
    cout << "\n\n" << "Массив 2:\n";
    const int size2 = 6;
    int array2[size2] = { 5, 3, 1, 5, 10, 8 };
    for (int i = 0; i < size2; i++)
    {
        cout << array2[i] << " ";
    }
 
    cout << "\n\n" << "Массив 2 после работы функции:\n";
     
    return 0;
}
Не могу понять, как дальше вывести значение
0
Эксперт CЭксперт С++
3446 / 2029 / 1110
Регистрация: 14.12.2018
Сообщений: 3,985
Записей в блоге: 1
12.03.2022, 14:32 4
Лучший ответ Сообщение было отмечено Raven 1 как решение

Решение

Цитата Сообщение от Raven 1 Посмотреть сообщение
Не могу понять, как дальше вывести значение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
void f(int first[], int nf, int second[], int ns)
{
    for (int* p1 = first; p1 != first + nf; ++p1)
        for (int* p2 = second; p2 != second + ns; ++p2)
            if (*p2 == *p1)
                *p2 = 0;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    std::cout << "Задача 1.\nМассив 1: "; // Задача 1
    const int size1 = 7;
    int array1[size1] = { 3, 6, 4, 1, 4, 8, 2 };
    for (int i = 0; i < size1; i++)
        std::cout << array1[i] << " ";
    std::cout << "\nМассив 2: ";
    const int size2 = 6;
    int array2[size2] = { 5, 3, 1, 5, 10, 8 };
    for (int i = 0; i < size2; i++)
        std::cout << array2[i] << " ";
    f(array1, size1, array2, size2); // Call function....
    std::cout << "\nМассив 2 после работы функции: ";
    for (int i = 0; i < size2; i++)
        std::cout << array2[i] << " ";
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2022, 14:32
Помогаю со студенческими работами здесь

Ввести два одномерных массива и заменить нулями те элементы второго массива, которые есть в первом
Ввести два одномерных массива и заменить нулями те элементы второго массива, которые есть в первом

дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися)
нужно чтоб на экран еще выводило перед новым массивом А, числа,которые повторяются в массиве В 2...

Функция обнуляющая все элементы с индексом, большим чем у наибольшего элемента
Здравствуйте. Помогите написать программу. Вот сама задача: Дан одномерный массив из N целых чисел...

Из массива А удалить все элементы, которые встречаются в В ровно 2 раза
Вводятся массивы А и В. Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из...

Вывести все элементы массива, которые встречаются ровно K раз
Напишите программу, которая сортирует массив и выводит все элементы массива, которые встречаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru