kamillotop Napisano Czerwiec 27, 2008 Zgłoś Share Napisano Czerwiec 27, 2008 Witam, Borykam sie z problem sortowania wyciagnietych z pliku znakow. Z zalozenia beda to slowa.. narazie wstepnie testowalem to na liczbach i niestety nie sortuje. Byłbym wdzieczni, gdyby ktos zyczliwy rzucil okiem.. co moze byc nie tak? #include <stdio.h> #include <stdlib.h> #include <string.h> void sortowanie(int*tabela, int n){ int i,j,tmp,min; for(i=0;i<n-1;i++){ min=i; for(j=i+1;j<n;j++) if(tabela[j]<tabela[min]) min=j; tmp=tabela[i]; tabela[i]=tabela[min]; tabela[min]=tmp; } } main(){ int i,n,d; char bufor[25]; char ** tabela; FILE * plik; plik=fopen("te","r"); n=0; while(fgets(bufor,25,plik)!=NULL) n++; rewind(plik); tabela=(char**)malloc(n*sizeof(char*)); printf("Przed sortowaniem\n"); for(i=0;i<n;i++){ fgets(bufor,25,plik); d=strlen(bufor); tabela[i]=(char*)malloc(d); strncpy(tabela[i],bufor,d-1); tabela[i][d-1]=0; printf("%s\n",tabela[i]); } //sortowanie sortowanie(tabela,n); //wyswietlenie finalu for(i=0;i<n;i++){ printf("%s\n",tabela[i]); } fclose(plik); return(0); } Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Czerwiec 27, 2008 Zgłoś Share Napisano Czerwiec 27, 2008 sortowanie powinno wygladac tak: (pseudo kod) KOD for(int t=0;t<n; t++) for(int y=t;y<n; y++) if (liczba[t] < liczba[y]) Swap(liczba[t], liczba[y]); Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
kamillotop Napisano Czerwiec 27, 2008 Autor Zgłoś Share Napisano Czerwiec 27, 2008 ale sam algorytm sortowania dziala.. problem twki gdzies indziej Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Czerwiec 27, 2008 Zgłoś Share Napisano Czerwiec 27, 2008 Fajnie. A co konkretnie ci nie dziala poza tym ze nie sortuje ? Jakie sa objawy ? jak jest a jak byc powinno ? Moze jakis przyklad ? Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Czerwiec 27, 2008 Zgłoś Share Napisano Czerwiec 27, 2008 Odpaliłem ten kod, dołączając uprzednio plik tekstowy z danymi, program zawiesza się nic nie wyświetlając!!! zresztą od razu widać, że pisał go ktoś nie mający pojęcia co robi... Nie mam ochoty dalej bawić się tym kodem a pisać od początku... sami wiecie Proponuje koledze poczytać troszkę, na googlach znajdzie dużo informacji oraz gotowe programy. Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
kamillotop Napisano Czerwiec 27, 2008 Autor Zgłoś Share Napisano Czerwiec 27, 2008 coz.. odrebnie sortowanie i czytanie z pliku dzialaja.. problemem jest polaczenie obu kodow.. a konkretnie tablic Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Czerwiec 27, 2008 Zgłoś Share Napisano Czerwiec 27, 2008 Tak! w funkcji masz: void sortowanie(int*tabela, int n) w main: char ** tabela; i wywołujesz: sortowanie(tabela,n); nie widzisz nic dziwnego?? Link do komentarza Udostępnij na innych stronach More sharing options...
kamillotop Napisano Czerwiec 29, 2008 Autor Zgłoś Share Napisano Czerwiec 29, 2008 Czyli jak powinna wygladac deklaracja tabeli w main? char * tabela ? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Czerwiec 29, 2008 Zgłoś Share Napisano Czerwiec 29, 2008 Jak powinna wygladac tego nikt nie wie, bo nie wiem czy ty chcesz sortowac inty czy chary. Z drugiej strony co bys nie chcial sortowac to typy powinny byc zgodne. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Czerwiec 29, 2008 Zgłoś Share Napisano Czerwiec 29, 2008 Hi! Kolego, robisz ciekawe rzeczy: tabela=(char**)malloc(n*sizeof(char*)); może lepiej najpierw przeczytaj jakąś książkę bądź kurs c++?? kod który pokazałeś jest strasznie zakręcony... ma troszkę za dużo błędów abyśmy mogli Ci tu pomóc moim zdaniem borykasz się... ale nie z sortowaniem a z c++ do nauki! od podstaw i bez omijania rozdziałów, zacznij od prostych programów a zajdziesz daleko Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.