kryś98 Temat założony przez niniejszego użytkownika |
[C] problem z sortowaniem liczb » 2018-01-14 15:48:14 Witam, mam za zadanie napisać program, który sortuje ułamki. Niestety mój program nie działa #include <stdio.h> #include <stdlib.h>
int compare( const void * a, const void * b );
int main() { FILE * fin = fopen( "liczby.txt", "r" ); double a[ 20 ][ 15 ]; int n = 0; while( fscanf( fin, "%s", & a[ n ] ) == 1 ) n++; fclose( fin ); qsort( a, 21, sizeof( double ), compare ); FILE * fout = fopen( "posortowaneLiczby.txt", "w" ); int i; for( i = 0; i < n; i++ ) fprintf( fout, "%s\n", a[ i ] ); fclose( fout ); return 0; }
int compare( const void * a, const void * b ) { return( *( double * ) a - *( double * ) b ); }
|
|
mateczek |
» 2018-01-14 16:00:43 o co chodzi w tym kodzie ?? double a[ 20 ][ 15 ]; int n = 0; while( fscanf( fin, "%s", & a[ n ] ) == 1 ) n++;
|
|
kryś98 Temat założony przez niniejszego użytkownika |
» 2018-01-14 17:21:09 Mój błąd, zamiast %s powinno być %lf. A co do reszty to tak robiliśmy na zajęciach. Nie wiem gdzie tu jest błąd i dlaczego to nie chce działać |
|
mateczek |
» 2018-01-14 18:21:57 Nie wiem gdzie tu jest błąd |
pokaż jak wygląda plik z danymi do sortowania bo ten kod wydaje się nie mieć sensu !!! Pierwsze pytanie "Dlaczego tablica 2D" o wymiarach 20X15 Co chciałeś osiągnąć?? A co do reszty to tak robiliśmy na zajęciach |
Ani to argument ani wyjaśnienie. |
|
kryś98 Temat założony przez niniejszego użytkownika |
» 2018-01-14 19:17:46 Chcę sortować liczby typu: 0.6734 -0.5678 0.002322 itd. |
|
mateczek |
» 2018-01-14 20:26:12 poprawiony kod #include <stdio.h> #include <stdlib.h>
int compare( const void * a, const void * b ) { return( *( double * ) a - *( double * ) b ); } int main() { FILE * fin = fopen( "liczby.txt", "r" ); double a[ 20 ]; int n = 0; while( fscanf( fin, "%lf", & a[ n ] ) == 1 ) { n++; } fclose( fin ); qsort( a, n, sizeof( double ), compare ); FILE * fout = fopen( "posortowaneLiczby.txt", "w" ); int i; for( i = 0; i < n; i++ ) fprintf( fout, "%lf ", a[ i ] ); fclose( fout ); return 0; }
//edit z tym &a[n]==1 nie zauważyłem nawiasu w niesformatowanym kodzie moja wina :) szukałem sensu w użyciu tablicy 2D i nic mi się nie zgadzało |
|
kryś98 Temat założony przez niniejszego użytkownika |
» 2018-01-14 21:15:55 Program nadal nie działa, w wyniku wyrzuca same zera |
|
mateczek |
» 2018-01-14 21:46:28 czy w qSort zmieniłeś stałą 21 na zmienną n?? (bo tam też był błąd??). Czy ilość danych do posortowania nie przekracza 20 liczb?? qsort( a, n, sizeof( double ), compare );
|
|
« 1 » 2 |