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

liczenie występowań liczb w tablicy

Ostatnio zmodyfikowano 2014-10-25 23:29
Autor Wiadomość
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ł.

C/C++
#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 ] << " ";
    }
}
P-119402
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
P-119409
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.
P-119410
« 1 »
  Strona 1 z 1