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. 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. |
|
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. |
|
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... |
|
divers Temat założony przez niniejszego użytkownika |
» 2016-03-20 19:32:19 nie moge posortowac, bo musze zachowac kolejnosc wpisywanych elementow :/ |
|
mateczek |
» 2016-03-20 19:39:25 wypisuje te elementy tablicy 2, których nie ma w tablicy 1 #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
|
|
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. |
|
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 |
|
carlosmay |
» 2016-03-20 20:47:50 Powinno działać. { int a1[] = { 1, 3, 2, 1, 2 }; int a2[] = { 2, 4, 3, 3, 2, 1, 1 }; int dup[ 5 ] = { 0 }; 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; } |
|
« 1 » 2 |