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

Program szeregujący liczby

Ostatnio zmodyfikowano 2014-11-01 16:07
Autor Wiadomość
lectre
Temat założony przez niniejszego użytkownika
Program szeregujący liczby
» 2014-11-01 14:22:21
Witam. Chcę napisać program, który losuje liczby, wyświetla je, a następnie wyświetla je od największej do najmniejszej. Napisałem pierwszą część, drugą próbowałem, ale nawet jeśli mam pomysły to są one brzydkie i nie podoba mi się taki niechlujny program. Zamiast gotowego rozwiązania poprosiłbym o mniej lub bardziej szczegółowe wskazówki. Oto kod:
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int ilosc = 10;

int najmniejsza( int x[] )
{
    int najm = x[ 0 ];
    int miska[ ilosc ];
    for( int i = 0; i < ilosc; i++ )
         if( najm > x[ i ] ) najm = x[ i ];
   
    return najm;
}

int main()
{
    srand( time( NULL ) );
    int x[ ilosc ];
    for( int i = 0; i < ilosc; i++ )
    {
        x[ i ] = rand() % 10;
        cout << x[ i ] << " ";
    }
}
P-119798
szymeczek31
» 2014-11-01 14:56:08
Ten algorytm przerób - Sortowanie bąbelkowe.
Wyświetl potem od nowego wiersza po posortowaniu czy jak tam chcesz. A jak chcesz chlujnie to wczytaj wszystko w stringa i wyswietl w MessageBox() ;). Bedzie kreatywniej :D
P-119803
lectre
Temat założony przez niniejszego użytkownika
» 2014-11-01 16:07:19
Edit: Poprzednią wersję usunąłem, wiem gdzie tkwił błąd. Teraz program działa, jednak tylko dla pierwszych 3 bądź 4 liczb. Mógłby ktoś poprawić, aby działał?

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int ilosc = 10;

int najmniejsza( int x[], bool tab[] )
{
    int najm = x[ 0 ] + 10; // aby miec pewnosc, ze wieksza niz inne
    for( int i = 0; i < ilosc; i++ )
    if( najm > x[ i ] && tab[ i ] == false )
    {
        tab[ i ] = true;
        najm = x[ i ];
    }
    return najm;
}

int main()
{
    bool spr[ ilosc ];
    for( int i = 0; i < ilosc; i++ )
         spr[ i ] = false;
   
    srand( time( NULL ) );
   
    int x[ ilosc ];
    for( int i = 0; i < ilosc; i++ )
    {
        x[ i ] = rand() % 10;
        cout << x[ i ] << " ";
    }
    cout << endl;
    for( int i = 0; i < ilosc; i++ )
    {
        cout << najmniejsza( x, spr ) << " ";
    }
}

Ps. Za rozwiązanie kolegi na górze dziękuję, ale nie skorzystam. Chcę bazować tylko na wiedzy, którą do tej pory posiadam.
P-119807
« 1 »
  Strona 1 z 1