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

funkcja qsort dla char

Ostatnio zmodyfikowano 2012-12-17 08:51
Autor Wiadomość
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
C/C++
#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 ] );
    }
}
P-71179
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.
P-71222
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/JiZXNX

Dodam, że pisząc w C++ zalecane jest używanie nagłówków z C++, a nie z C:
C/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.
P-71265
« 1 »
  Strona 1 z 1