13 / 13 / 1
Регистрация: 06.09.2016
Сообщений: 16
1

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

17.12.2016, 21:43. Показов 4649. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На основе исходных массивов A[n] и B[m] (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел, которые входят в массив B, но при этом не входят в массив A. Упорядочить массив С по возрастанию, используя метод «пузырька». Вывести элементы массивов A, B и С на экран.
Массивы A, B и C являются целочисленными. Значения m и n вводятся пользователем с клавиатуры.

Программа работает, но результат получается не тот, который нужен. Никак не могу найти ошибку.


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
38
39
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <cstdlib>
using namespace std;
int main() {
    int i, n, k, j, m,w;
    int a[255], b[255], c[255];
    cin>>n;
    for (int i = 0; i < n; i = i++) {
        a[i] = 0 + rand() % 20;
    }
    cin >> m;
    for (int k = 0; k<m; k = k++) {
        b[k] = 0 + rand() % 20;
    }
    w = 0;
    for (int i = 0; i < n; i = i++) {
        for (int k = 0; k < m; k = k++) {
            if (b[m] != a[n])
                w = w++;
        }
    }
         
    for (int j = 0; j < w; j = j++) {
        for (int i = 0; i < n; i = i++) {
            for (int k = 0; k < m; k = k++) {
                if (b[k] != a[i])
                    c[j] = b[k];
            }
        }
    }
 
    for (int j = 0; j < n; j = j++)
    cout << c[j];
    system("pause");
    return 0;
}
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2016, 21:43
Ответы с готовыми решениями:

Дано два целочисленных массива Сформировать новый массив, который содержит элементы первого массива, которых нет во втором
Полное условие: Дано два целочисленных массива, состоящих из неповторяющихся чисел. Сформировать...

Найти элементы первого массива, которых нет во втором
Вот написал программку, а она не работает. Подскажите почему? Если что-то не так оформил,...

Найдите элементы первого массива, которых нет во втором
Подскажите, пожалуйста, что не так? Код проходит не все тесты, не могу понять где ошибка... ...

Найдите элементы первого массива, которых нет во втором
Что не так, подскажите. Даны два одномерных массива размеров из n и m элементов соответственно....

4
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
17.12.2016, 22:07 2
Во-первых, в 29 строчке проверка (b[k] != a[i]) не гарантирует что b[k] не входит в массив A. Она гарантирует только что b[k] не совпадает с одним значением из A.
Во-вторых, нельзя использовать в одном выражении переменную и ее инкремент. В противном случае i=i++ может превратиться в:
C++
1
2
3
int temp=i;
++i;
i=temp;
и программа зависает. А может и не превратиться, это целиком на откуп компилятора.
0
13 / 13 / 1
Регистрация: 06.09.2016
Сообщений: 16
17.12.2016, 23:04  [ТС] 3
Цитата Сообщение от Renji Посмотреть сообщение
Во-первых, в 29 строчке проверка (b[k] != a[i]) не гарантирует что b[k] не входит в массив A. Она гарантирует только что b[k] не совпадает с одним значением из A.
Во-вторых, нельзя использовать в одном выражении переменную и ее инкремент. В противном случае i=i++ может превратиться в:
Можете, пожалуйста, по конкретней написать, не могу ума приложить как это реализовать.
1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
17.12.2016, 23:11 4
Цитата Сообщение от Pancakewithjam Посмотреть сообщение
не могу ума приложить как это реализовать.
Pancakewithjam, напишите функцию поиска, которая принимает целое (значение) указатель на целое и размер массива (целое или size_t) и возвращающую целое. Пусть ищет по указателю на указанном размере данное значение и если находит возвращает индекс находки, а если нет -1. Потом проходите по первому массиву и каждый элемент ищете во втором. Если не находите - пишете в третий.
0
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
17.12.2016, 23:46 5
Лучший ответ Сообщение было отмечено Pancakewithjam как решение

Решение

Pancakewithjam, я старался упростить вам жизнь, и вот что получилось. Правда, на выходе множество упорядоченное по возрастанию, а не массив. Впрочем, задача решена.

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
38
39
#include <iostream>
#include <algorithm>
#include <iterator>
#include <set>
 
using namespace std;
 
int main()
{
    int N, M;
    set<int> C[3];
    cout << "Введите размерность массива A:" << endl;
    cout << "N = ";
    cin >> N;
    int* A = new int[N];
    cout << "Введите элементы массива A:" << endl;
    for (int i = 0; i < N; i++)
    {
        cin >> A[i];
        C[0].insert(A[i]);
    }
    cout << "Введите размерность массива B:" << endl;
    cout << "M = ";
    cin >> M;
    int* B = new int[M];
    cout << "Введите элементы массива B:" << endl;
    for (int i = 0; i < M; i++)
    {
        cin >> B[i];
        C[1].insert(B[i]);
    }
    cout << "Искомый массив упорядоченный по возрастанию:" << endl;
    set_difference(
        C[1].begin(), C[1].end(), C[0].begin(), C[0].end(), inserter(C[2], C[2].begin()));
    copy(C[2].begin(), C[2].end(), ostream_iterator<int>(std::cout, " "));
    cout << endl;
    system("pause");
    return 0;
}
1
17.12.2016, 23:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2016, 23:46
Помогаю со студенческими работами здесь

Определите все элементы первого массива, которых нет во втором
Даны два массива A(N) и B(M), где N&lt;&gt;M.Определите все элементы первого массива, которых нет во...

Скопировать в третий массив структуры, которые есть в первом массиве и которых нет во втором массиве
Огласить тип структуры, которая включает в себя данные про фамилии и адреса людей. Ввести два...

Значения, которые есть в первом массиве и которых нет во втором массиве, скопировать в третий массив
Помогите сделать вот условие Объявить тип структуры, содержащий сведения о фамилии и адреса...

Найти количество элементов первого массива, которые встречаются во втором массиве
Помогите написать программу пожалуйста!!!!!!! Составьте функцию, которая определяет для двух...


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

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

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