Problem z programem "Mediana"
Ostatnio zmodyfikowano 2015-12-25 11:40
Mamut Temat założony przez niniejszego użytkownika |
Problem z programem "Mediana" » 2015-12-25 01:21:46 Witam. Otóż mam tu program i mam pewien problem. Mianowicie program raz działa właściwie raz nie. Czyli raz faktycznie sortuje podane liczby, a raz nie sortuje wcale, albo już w ogóle wstawia jakieś dziwne wartości. Proszę o pomoc w rozwiązaniu problemu. #include <iostream>
using namespace std;
void Sortowanie( int tab[], int size ) { int k; for( int i = 0; i < size; i++ ) { k = i; for( int j = i + 1; j < size; j++ ) if( tab[ j ] < tab[ k ] ) k = j; swap( tab[ k ], tab[ i ] ); } }
int main() { int ilosc = 0; cout << "Ile liczb ma byc w programie? Podaj ilosc: " << endl; cin >> ilosc; int * tabl_liczb = new int[ ilosc ]; cout << "Wprowadz kolejno liczby, kazda zatwierdzajac klawiszem ENTER: " << endl; int zmienna = 0; for( int i = 0; ilosc > i; i++ ) { cin >> zmienna; tabl_liczb[ i ] = zmienna; } Sortowanie( tabl_liczb, zmienna ); for( int i = 0; i < ilosc; i++ ) { cout << "Element nr: " << i << " ma wartosc: " << tabl_liczb[ i ] << endl; } return 0; }
|
|
1aam2am1 |
» 2015-12-25 02:23:35 Sortowanie( tabl_liczb, zmienna ); ? Sortowanie( tabl_liczb, ilosc ); |
|
Gibas11 |
» 2015-12-25 06:26:21 1. Tak jak napisał kolega wyżej, przekazujesz zła zmienna jako drugi argument funkcji "Sortowanie", teraz pewność, że algorytm działa możesz mieć wtedy, kiedy ostatnia wprowadzona liczba będzie równa ilości wprowadzonych liczb. Choć oczywiście moga się zdarzyć inne specyficzne przypadki, w których dostaniesz dobry wynik. 2. Nie musisz zerować zmiennych, które i tak zaraz nadpiszesz cinem albo czymś innym. Świetny sposób na oznaczanie przybliżonego zastosowania zmiennych w kodzie. Te zerowane będa do czegoś używane i musza wynosić 0 a inne i tak szybko zostana nadpisane. |
|
Mamut Temat założony przez niniejszego użytkownika |
» 2015-12-25 11:40:19 Dziękuję bardzo za pomoc :) W sumie to nie wiem czemu dałem za argument "zmienna" zamiast "ilość", ale już nie ważne, wszystko teraz działa jak należy :) |
|
« 1 » |