Carlosss Temat założony przez niniejszego użytkownika |
Sortowanie liczb » 2009-08-01 21:57:16 Mam do was pytanko a mianowicie... Jak zrobić by program spośród wypisanych liczb ustawił je w kolejności od największej do najmniejszej (bądź odwrotnie) i wypisał je na ekran?? Z góry dzięki za każde pomocne odpowiedzi...
//Od pixelmaster: staraj się, aby nazwa wątku naprowadzała na to o czym będziesz pisał w wątku |
|
DejaVu |
» 2009-08-01 22:02:28 1. wczytać dane do tablicy 2. posortować tablicę 3. wypisać zawartość tablicy
|
|
Carlosss Temat założony przez niniejszego użytkownika |
» 2009-08-01 22:03:27 zrobilem cos takiego ale nie działa tak jak tego chciałem więc prosze o podpowiedź co źle w tym programie jest #include <iostream> #include <cstdio> #include <cstdlib> #include <iomanip> #include <conio.h> using namespace std; string zawodnicy[ 15 ] = { "Lsss", "Lsccss", "Lgjbsss", "Lsshgfgs", "Lsghss", "Lsssaw", "Lwwsss", "Lsaass", "Lssdds", "Ldfdssss", "Lsssads" }; int um_zaw[ 12 ]; int st[ 12 ], jz[ 12 ], si[ 12 ], re[ 12 ], fo[ 12 ], ko[ 12 ]; void zamien( int & a, int & b ) { int temp = a; a = b; b = temp; } void sortowanie_przez_wybor( int um_zaw[], int n ) { int i, j, k, temp; for( i = 0; i < n; i++ ) { k = i; for( j = i + 1; j < n; j++ ) if( um_zaw[ j ] > um_zaw[ k ] ) k = j; zamien( um_zaw[ k ], um_zaw[ i ] ); } } void wypisz( string zawodnicy[], int n ) { for( int i = 0; i < n; i++ ) cout << setw( 3 ) << zawodnicy[ i ] << " " << um_zaw[ i ] << "\n"; cout << endl; } void wypisz2( string zawodnicy[], int n ) { int a = 3; for( int i = 0; i < n; i++ ) cout << a--<< "] " << setw( 3 ) << zawodnicy[ i ] << "\n"; cout << endl; } int main() { st[ 0 ] = 34; st[ 1 ] = 34; st[ 2 ] = 35; st[ 3 ] = 12; st[ 4 ] = 65; st[ 5 ] = 80; st[ 6 ] = 43; st[ 7 ] = 25; st[ 8 ] = 36; st[ 9 ] = 20; st[ 10 ] = 75; st[ 11 ] = 20; st[ 12 ] = 45; jz[ 0 ] = 53; jz[ 1 ] = 53; jz[ 2 ] = 23; jz[ 3 ] = 42; jz[ 4 ] = 56; jz[ 5 ] = 35; jz[ 6 ] = 35; jz[ 7 ] = 35; jz[ 8 ] = 28; jz[ 9 ] = 14; jz[ 10 ] = 80; jz[ 11 ] = 10; jz[ 12 ] = 44; si[ 0 ] = 25; si[ 1 ] = 26; si[ 2 ] = 11; si[ 3 ] = 12; si[ 4 ] = 75; si[ 5 ] = 23; si[ 6 ] = 15; si[ 7 ] = 25; si[ 8 ] = 19; si[ 9 ] = 8; si[ 10 ] = 80; si[ 11 ] = 30; si[ 12 ] = 44; re[ 0 ] = 25; re[ 1 ] = 25; re[ 2 ] = 57; re[ 3 ] = 21; re[ 4 ] = 74; re[ 5 ] = 42; re[ 6 ] = 11; re[ 7 ] = 25; re[ 8 ] = 8; re[ 9 ] = 9; re[ 10 ] = 80; re[ 11 ] = 40; re[ 12 ] = 44; ko[ 0 ] = 25; ko[ 1 ] = 25; ko[ 2 ] = 11; ko[ 3 ] = 12; ko[ 4 ] = 32; ko[ 5 ] = 34; ko[ 6 ] = 12; ko[ 7 ] = 25; ko[ 8 ] = 10; ko[ 9 ] = 6; ko[ 10 ] = 80; ko[ 11 ] = 50; ko[ 12 ] = 44; for( int r = 0; r < 13; r++ ) um_zaw[ r ] = st[ r ] + jz[ r ] + si[ r ] + re[ r ] + ko[ r ]; int tablica[ 4 ]; int i; srand( time( NULL ) ); cout << "W tym biegu wystartuja " << endl; wypisz( zawodnicy, 4 ); cout << "Wyniki biegu:" << endl; sortowanie_przez_wybor( um_zaw, 4 ); wypisz2( zawodnicy, 4 ); getchar(); getchar(); return 0; }
|
|
DejaVu |
» 2009-08-11 11:44:39 Tak nie wgłębiając się w to czy algorytm sortowania działa - sortujesz tylko i wyłącznie tablicę z int'ami. Kolejności zawodników nie zmieniasz w tablicy z ich nazwami, więc zawodnicy zawsze są wypisywani w tej samej kolejności. |
|
Carlosss Temat założony przez niniejszego użytkownika |
» 2009-08-11 12:06:46 A jak to zrobic ?? Jak bys mógł to edytuj kod programu |
|
eBbi |
» 2009-08-11 12:58:59 cholera ;p Pisałem artykół wczoraj o algorytmach sortowań ale go jeszcze nie publikowąłem bo nieskończyłem :(. Dziś opublikuje go, narazie posiada tylko 3 algorytmy ale na dniach go rozwine. A narazie to wpracy jestem :p |
|
DeBugger |
» 2009-08-13 12:12:01 Napisałeś już temat/artukuł o algorytmach sortowania - ten temat zamykam. :) |
|
« 1 » |