Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wykrywanie duplikatów

Ostatnio zmodyfikowano 2016-03-21 02:12
Autor Wiadomość
divers
Temat założony przez niniejszego użytkownika
Wykrywanie duplikatów
» 2016-03-20 19:07:49
Witam, mam problem z wykryciem i pominięciem duplikatów wartości z dwóch tablic.

C/C++
for( x = 0; x < n; x++ )
{
    for( i = 0; i < k; i++ )
    {
        if( z[ i ] == t[ x ] )
        {
           
            c << z[ i ] << " ";
           
        }
    }
   
}

Gdy element z 1 tablicy rowna sie elementowi z 2 tablicy, wypisuje do pliku.
Ja chcę zrobić tak zeby w pliku nie powtarzaly sie liczby.
P-146288
carlosmay
» 2016-03-20 19:23:09
Witam, mam problem z wykryciem i pominięciem duplikatów wartości z dwóch tablic.
Wypadałoby scalić dwie tablice w jedną, pomijając duplikaty i taką tablicę zapisać do pliku.
Bez tego ciężko będzie. Program musiałby sprawdzać czy sprawdzana liczba już jest zapisana w pliku.
P-146290
1aam2am1
» 2016-03-20 19:28:14
1. Posortuj obie tablice.
2. Zapisz element mniejszy z tablic
3. Zapisz następny najmniejszy element z tablic, większy od poprzedniego itd...
P-146291
divers
Temat założony przez niniejszego użytkownika
» 2016-03-20 19:32:19
nie moge posortowac, bo musze zachowac kolejnosc wpisywanych elementow :/
P-146293
mateczek
» 2016-03-20 19:39:25
wypisuje te elementy tablicy 2, których nie ma w tablicy 1
C/C++
#include <iostream>
using namespace std;

int main() {
   
    int a1[ 10 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
    int a2[ 10 ] = { 7, 8, 9, 10, 11, 12, 3, 13, 14, 15 };
    for( int i = 0; i < 10; i++ ) {
        bool duplicate = false;
        for( int k = 0; k < 10; k++ ) {
            if( a2[ i ] == a1[ k ] ) duplicate = true;
           
        }
        if( duplicate ) continue;
       
        cout << a2[ i ] << " ";
    }
    cout << endl;
}


wynik programu

10,11,12,13,14,15
P-146294
carlosmay
» 2016-03-20 19:39:54
nie moge posortowac, bo musze zachowac kolejnosc wpisywanych elementow :/
Napisz co konkretnie masz zrobić. Na razie snujemy domysły.
Kolejność ma być zachowana, ale masz dwie tablice i duplikaty, więc określ jak to ma być kolejność.
Jakiś przykład.
P-146295
divers
Temat założony przez niniejszego użytkownika
» 2016-03-20 19:44:10
Pierwsza tablica: 1 3 2 1 2
Druga tablica: 2 4 3 3 2 1 1

Powinno sie pokazac: 1 3 2
P-146296
carlosmay
» 2016-03-20 20:47:50
Powinno działać.
C/C++
{
    int a1[] = { 1, 3, 2, 1, 2 }; // 5
    int a2[] = { 2, 4, 3, 3, 2, 1, 1 }; // 7
    int dup[ 5 ] = { 0 }; // 5
    int count = 0;
    bool flag = false;
   
    for( int i = 0; i < 5; ++i ) {
        for( int j = 0; j < 7; ++j ) {
            flag = true;
            if( a1[ i ] == a2[ j ] ) {
                if( count == 0 )
                     dup[ count++ ] = a1[ i ];
               
                for( int k = 0; k < count; ++k ) {
                    if( a1[ i ] == dup[ k ] ) {
                        flag = false;
                        break;
                    }
                    else {
                        flag = true;
                    }
                }
                if( flag )
                     dup[ count++ ] = a1[ i ];
               
                break;
            }
        }
    }
   
    for( int i = 0; i < count; ++i )
         std::cout << dup[ i ] << ' ';
   
    std::cout << std::endl;
}
P-146301
« 1 » 2
  Strona 1 z 2 Następna strona