Форум программистов, компьютерный форум CyberForum.ru

Как вывести несовпадающие элементы массива ? - C++

Восстановить пароль Регистрация
 
Ученик кода
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 76
11.07.2014, 19:51     Как вывести несовпадающие элементы массива ? #1
вывести элементы массива t, которые не совпадают с элементами в массиве p
C++
1
2
3
4
5
6
7
8
9
10
11
for (i = 0; i < m; i++)
    {   
        for(j = 0; j < n; j++)
        {
            if (*(p+i)!=(*t+j))
            {
            cout <<*(t+i) << ' ';
            break;
            }
        }
    }
этот код почему-то выводит весь массив t
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2014, 19:51     Как вывести несовпадающие элементы массива ?
Посмотрите здесь:

C++ Удалить из массива все элементы встречающиеся менее 3-х раз и вывести размер полученного массива и его содержимое.
C++ Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
Сформировать и вывести на экран новый массив, который будет содержать вначале все элементы массива A(0), затем все элементы массива B(4) C++
C++ Массивы. Первый элемент массива 1 умножить на все элементы массива 2 и вывести результат...
C++ Как вывести отрицательные элементы только в первом столбике массива?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BF_
3 / 3 / 1
Регистрация: 07.09.2013
Сообщений: 68
11.07.2014, 20:09     Как вывести несовпадающие элементы массива ? #2
Цитата Сообщение от Ученик кода Посмотреть сообщение
if (*(p+i)!=(*t+j))
смотри сюда
замени на
C++
1
if ( *(p+i) != *(t+j) )
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
11.07.2014, 20:59     Как вывести несовпадающие элементы массива ? #3
BF_, не сработает, у * больший приоритет.
Ученик кода, логика поиска неправильная. Установите bool переменную и меняйте значение при
найдено/не найдено
bazJaz
 Аватар для bazJaz
33 / 30 / 10
Регистрация: 11.07.2014
Сообщений: 388
11.07.2014, 21:11     Как вывести несовпадающие элементы массива ? #4
n - размер массива

C++
1
for(int i = 0; i < n; i++){if(t[i]!=p[i]){cout<<"element t"<<t[i]<<endl;}}
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
11.07.2014, 21:15     Как вывести несовпадающие элементы массива ? #5
bazJaz, как я понял количество элементов в массивах разное
bazJaz
 Аватар для bazJaz
33 / 30 / 10
Регистрация: 11.07.2014
Сообщений: 388
11.07.2014, 21:46     Как вывести несовпадающие элементы массива ? #6
Цитата Сообщение от GuGo1991 Посмотреть сообщение
как я понял количество элементов в массивах разное
C++
1
2
3
4
5
6
for(int i = 0; i < n1 ; i++){
for(int j = 0 ; j < n2 ; j++){
if(t[i]!=p[j])
cout<<t[i]<<"\n";
}
}
Ученик кода
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 76
11.07.2014, 22:15  [ТС]     Как вывести несовпадающие элементы массива ? #7
Цитата Сообщение от GuGo1991 Посмотреть сообщение
логика поиска неправильная
можно подробнее ?

Добавлено через 7 минут
bazJaz, этот способ здесь не работает.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
11.07.2014, 23:07     Как вывести несовпадающие элементы массива ? #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ученик кода, во вложенном цикле элемент массива p сравнивается с каждым элементом
массива t и в случае несоответствия выводится элемент массива t по индексу элемента массива p,
(не понятно зачем) что в свою очередь может привести к выходу за границы массива t в случае если элементов
в p больше чем в t.
Предлагаю такой вариант с переменной bool в качестве "флага" и вложенный цикл будет проходить p массив:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    for (i = 0; i < n; i++)
    {   
        bool check = false;
        for(j = 0; j < m; j++)
        {
            if (*(p+j)==(*(t+i)))
            {
                check = true;
                break;
            }
        }
        if(!check)
            std::cout << *(t+i) << ' ';
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 23:09     Как вывести несовпадающие элементы массива ?
Еще ссылки по теме:

Ввести элементы двумерного массива с клавы С++.Нужно вывести его на экран в виде таблицы, в конце каждой строки надо вывести самый большой элемент C++
C++ Вывести элементы массива в виде таблицы и переставить его элементы местами
C++ Вывести интересные элементы массива

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
11.07.2014, 23:09     Как вывести несовпадающие элементы массива ? #9
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//вывести элементы массива t, которые не совпадают с элементами в массиве p 
#include <iostream>
#include <ctime>
 
int *CreateArray (int N)
{
    int *arr = new int [N];
    for (int i = 0; i<N; i++)
        arr[i] = rand()%10;
 
    return arr;
}
 
void PrintArray (char name, int *arr, int N)
{
    std::cout <<"\nArray "<<name <<":\n";
    for (int i = 0; i<N; i++)
        std::cout << *(arr+i) << "  ";
    std::cout <<"\n";
}
 
bool IsUnique (int num, int *p, int M)
{
    for (int j = 0; j<M; j++)
        if( num == *(p+j))
            return false;
    return true;
}
 
 
//----------------------------------------------------------------------------
int main()
{   
    srand ((unsigned int)time (NULL));
    
    int N = 10, M = 15;
 
    int *t = CreateArray (N);
    int *p = CreateArray (M);
 
    PrintArray ('t', t, N);
    PrintArray ('p', p, M);
 
    std::cout <<"\nElements found in t only\n";
    for (int i=0; i<N; i++)
        if (IsUnique (*(t+i), p, M))
            std::cout << *(t+i) << "  ";
 
    delete []t;
    delete[]p;
 
    std::cin.get();
    return 0;
}
Yandex
Объявления
11.07.2014, 23:09     Как вывести несовпадающие элементы массива ?
Ответ Создать тему
Опции темы

Текущее время: 06:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru