funkcja qsort dla char
Ostatnio zmodyfikowano 2012-12-17 08:51
kasia93 Temat założony przez niniejszego użytkownika |
funkcja qsort dla char » 2012-12-16 14:07:41 jak posortowac alfabetycznie litery slowie typu char funkcja qsort? tutaj daje to co do tej pory napisalam, odrazu mowie ze jestem poczatkujaca;p #include<stdio.h> #include<cstring> #include<stdlib.h>
int porownywacz( const void * a, const void * b ) { return( *( char * ) a - *( char * ) b ); }
main() { int n, i, dlugosc; char wyraz[ 30 ]; scanf( "%d", & n ); for( i = 0; i < n; i++ ) { scanf( "%c", & wyraz[ i ] ); dlugosc = strlen( wyraz ); qsort( wyraz, dlugosc, sizeof( char ), porownywacz ); printf( "%c", wyraz[ i ] ); } } |
|
Hipochondryk |
» 2012-12-16 19:43:41 Nie jestem pewien, ale może zainicjuj tablice int, zrzutuj tablice char do int, przesortuj inta, a następnie zrzutuj inta do chara. |
|
Mrovqa |
» 2012-12-17 08:51:33 @kasia93 W ogóle się źle do tego wzięłaś - posortować wystarczy raz, a nie w kółko, i to do tego w pętli... Przecież to w oczy razi, iż będzie SIGSEGV... 1. Wczytujesz raz tekst jako string. 2. Sortujesz go. 3. Wypisujesz. http://ideone.com/JiZXNXDodam, że pisząc w C++ zalecane jest używanie nagłówków z C++, a nie z C: #include<cstdio> #include<cstring> #include<cstdlib> Skoro piszesz w C++, a nie w C (inkludujesz jeden nagłówek z C++!) to już lepiej jest użyć funkcji sort z #include <algorithm> - jest szybsza. |
|
« 1 » |