liczenie występowań liczb w tablicy
Ostatnio zmodyfikowano 2014-10-25 23:29
mkmkl93 Temat założony przez niniejszego użytkownika |
liczenie występowań liczb w tablicy » 2014-10-25 21:27:25 Witam. Potrzebuje zrobić kod liczący ile jest liczb k i wstawiający tą liczbę w k-ate miejsce w tabeli. Jak na razie stworzyłem coś takiego co niestety nie chce działać. Ja rozumiem, że to jest baaaaaardzo rozszerzona wersja i dużo rzeczy można skrócić lecz dopiero się tego uczę i chcę robić tak bym to zrozumiał. #include <iostream> #include <functional> #include <algorithm> using namespace std; int t[ 500 * 1000 ]; int ta[ 250 * 1000 ]; int tab[ 250 * 1000 ]; int tabl[ 250 * 1000 ]; int tabli[ 250 * 1000 ]; int tablic[ 250 * 1000 ]; int tablica[ 250 * 1000 ]; int tablica_koncowa[ 250 * 1000 ]; int wysokosc1[ 200 * 1000 ]; int wysokosc2[ 200 * 1000 ]; int wysokosc3[ 200 * 1000 ]; int wysokosc4[ 200 * 1000 ]; int main() { unsigned int n, h, c = 0, f, d, e, g, j = 0; do { cout << "Prosze podac wysokosc: "; cin >> h; } while( h > 200000 ); do { cout << "\nProsze podac dlugosc: "; cin >> n; } while( n > 500000 ); cout << "\nProsze podac dane: "; for( int i = 0; i < n; i++ ) { cin >> t[ i ]; } cout << "\nwysokosc: " << h; cout << "\ndlugosc: " << n << "\ndane t[i]: "; for( int i = 0; i < n; i++ ) { cout << t[ i ] << " "; } f = n / 2; g = n / 2; c = 0; for( int i = 0; c < g; i = i + 2 ) { ta[ c ] = t[ i ]; c++; } c = 0; for( int i = 1; c < f; i = i + 2 ) { tab[ c ] = t[ i ]; c++; } cout << "\ndane ta[c]:"; for( int i = 0; i < g; i++ ) { cout << ta[ i ] << " "; } cout << "\ndane tab[c]:"; for( int i = 0; i < f; i++ ) { cout << tab[ i ] << " "; } cout << "\ndlugosc parzystej tabeli " << g << "\ndlugosc nieparzystej tabeli " << f; sort( ta, ta + g ); cout << "\ntablica parzysta po uporzadkowaniu: "; for( int i = 0; i < g; i++ ) { cout << ta[ i ] << " "; } sort( tab, tab + f ); cout << "\ntablica nieparzysta po uporzadkowaniu: "; for( int i = 0; i < f; i++ ) { cout << tab[ i ] << " "; } int m = 0; for( int i = 0; i < g; i++ ) { wysokosc3[ i ] = i + 1; } int k = 0; e = 0; while( k < h ) { if( wysokosc3[ k ] == tab[ e ] ) { wysokosc2[ k ] = wysokosc2[ k ] + 1; e++; } if( wysokosc3[ k ] < tab[ e ] ) { k++; } } cout << "\ndane wysokosc2: "; for( int i = 0; i < h; i++ ) { cout << wysokosc2[ i ] << " "; } cout << "\ndane wysokosc1: "; for( int i = 0; i < h; i++ ) { cout << wysokosc1[ i ] << " "; } }
|
|
1aam2am1 |
» 2014-10-25 23:22:33 Jeżeli chodzi ci oto że podajesz liczbę lub liczby i chcesz zliczyć ile wywołań takiej samej liczby było to zrób tablicę samych zer. A przy podawaniu liczby odnoś się do elementu tej tablicy i podnoś wartość tego elementu o jeden. Chyba że cię źle zrozumiałem |
|
mkmkl93 Temat założony przez niniejszego użytkownika |
» 2014-10-25 23:29:39 Chodzi mi o to że na przykład dla tablica[k] program mi zwróci ile liczb k+1 (bo tablica[k] jest k+1 czescia tablicy jesli dobrze rozumiem)występuje w innej tablicy i dla danych np 1, 3 ,5 program by mi zwrócił 1 0 1 0 1 0 0. Już uporządkowałem wartości. |
|
« 1 » |