Zaimplementowanie sortowania
Ostatnio zmodyfikowano 2017-01-25 19:48
nowawieza Temat założony przez niniejszego użytkownika |
Zaimplementowanie sortowania » 2017-01-25 19:38:45 Witam, mam problem z funkcją sortowania KARCIANEGO. Potrzebuję ją tu dodać jednak znalazłem kilka wersji, a i tak nie wiem jak powinna ona wyglądać w stosunku do tych danych. Uzupełnienie tego programu byłoby dla mnie zbawieniem :) #include <stdio.h> #include <stdlib.h> #include <string.h>
int wczytanie( int tablica[], int licznik ) { printf( "Podaj maksymalnie %d liczb.\n", licznik ); int ilosc = 0; do { if( scanf( " %d", &( tablica[ ilosc ] ) ) == EOF ) { break; } ++ilosc; } while( ilosc < licznik ); return ilosc; }
void pokaz_tab( int tablica[], int licznik ) { printf( "Dane w tablicy:\n" ); for( int i = 0; i < licznik; ++i ) { printf( "%d|", tablica[ i ] ); } putchar( '\n' ); }
void sortowanie( int tablica[], int licznik ) { }
int main( void ) { int wielkosc = 0; printf( "Podaj ilosc liczb w ciagu: " ); scanf( "%d", & wielkosc ); int tablica[ wielkosc ] = { 0 }; int licznik; licznik = wczytanie( tablica, wielkosc ); printf( "Wprowadziles %d wartosci.\n", licznik ); pokaz_tab( tablica, wielkosc ); sortowanie( tablica, wielkosc ); printf( "Tablica po posortowaniu:\n" ); pokaz_tab( tablica, wielkosc ); return 0; }
|
|
nowawieza Temat założony przez niniejszego użytkownika |
» 2017-01-25 19:48:08 Jakoś sobie poradziłem ale pewnie jest błąd w zapisie gdzieś. Sprawdzicie i powiecie co mógłbym poprawić? #include <stdio.h> #include <stdlib.h> #include <string.h>
int wczytanie( int tablica[], int licznik ) { printf( "Podaj maksymalnie %d liczb.\n", licznik ); int ilosc = 0; do { if( scanf( " %d", &( tablica[ ilosc ] ) ) == EOF ) { break; } ++ilosc; } while( ilosc < licznik ); return ilosc; }
void pokaz_tab( int tablica[], int licznik ) { printf( "Dane w tablicy:\n" ); for( int i = 0; i < licznik; ++i ) { printf( "%d|", tablica[ i ] ); } putchar( '\n' ); }
void sortowanie( int tablica[], int licznik ) { int pom, j; for( int i = 1; i < licznik; i++ ) { pom = tablica[ i ]; j = i - 1; while( j >= 0 && tablica[ j ] > pom ) { tablica[ j + 1 ] = tablica[ j ]; --j; } tablica[ j + 1 ] = pom; } }
int main( void ) { int wielkosc = 0; printf( "Podaj ilosc liczb w ciagu: " ); scanf( "%d", & wielkosc ); int tablica[ wielkosc ] = { 0 }; int licznik; licznik = wczytanie( tablica, wielkosc ); printf( "Wprowadziles %d wartosci.\n", licznik ); pokaz_tab( tablica, wielkosc ); sortowanie( tablica, wielkosc ); printf( "Tablica po posortowaniu:\n" ); pokaz_tab( tablica, wielkosc ); return 0; }
[/i] |
|
« 1 » |