Skocz do zawartości
Lilo

Sortowanie W C

Rekomendowane odpowiedzi

Witam!

 

Musze napisać program sortujący tablice zawierającą wyrazy wprowadzane z klawiatury. Chciałem to zrobić na podstawie poniższego programu, ale tutaj są dwie różne tablice o takiej samej zawartości. Jak zrobić, żeby niejako skolonować tablice???

 

# include <stdio.h># include <conio.h># include <stdlib.h># include <string.h>int porownaj( const void *a, const void *b){return (strcmp((char *)a,(char *)b) );}int main(void) {int i;char tab[7][10] = {"Ala", "Ola", "Mirek", "Szymon", "Darek", "Wacek", "Ela"};char tab_sort[7][10] = {"Ala", "Ola", "Mirek", "Szymon", "Darek", "Wacek", "Ela"};qsort((void *)tab_sort, 7, sizeof(tab[0]), porownaj);for (i=0; i<7; i++)printf("%s\t %s\n", tab[i], tab_sort[i]);getch();return 0;}

 

A oto co napisałem, lecz nie działa

 

# include <stdio.h># include <conio.h># include <stdlib.h># include <string.h>int porownaj( const void *a, const void *b){return (strcmp((char *)a,(char *)b) );}int main(void) {int i,lw;//char *b;char A[7][10];char AB[7][10];clrscr();printf("Podaj liczbe wierszy=");scanf("%d",&lw);fflush(stdin);for(i=1;i<lw+1;i++){printf("\nWpisz tekst %d: ",i);gets(A[i]);}for(i=1;i<lw+1;i++){A[i]=AB[i];}for(i=1;i<lw+1;i++){printf("\nTekst %d: %s",i, A[i]);printf("\nTekst %d: %s",i, AB[i]);}qsort((void *)AB, 7, sizeof(A[1]), porownaj);for (i=1; i<8; i++)printf("%s\t %s\n", A[i], AB[i]);getch();return 0;}

Prosze o pomoc.

Edytowane przez Lilo

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

> Małe wskazówki ;]

 

Przy cytowniu kodu proszę używać tagów bbcode ,


,

i


.

 

Bardzo ważne jest także to, abyście podali JĘZYK PROGRAMOWANIA w jakim piszecie. Często jest to dość trudne do odgadnięcia.

 

// ParanoiK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Fajnie lukasrz, ze mu pomogles. Ogolnie to widze, ze wiesz co robisz.

 

Kolego, mam dla Ciebie dobrego linka:

http://www.i-lo.tarnow.pl/edu/inf/alg/algsort/pages/025.php

prosze :) ot sortowanie :)

 

nie wiem jak to jezyk programowania tak wiec sory, przydaloby sie napisac

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Fajnie, że ktoś stara mi się pomóc, lecz ten link prowadzi do programów napisanych w Pascalu, a ja muszę to napisać w C z poleceniem qsort i to na jutro. Napisałem program na podstawie tego zamieszczonego wyżej, ale trzeba wprowadzać dwa razy te same dane to dwóch różnych tablic. Nie wiem czy rozumiecie na czym polega problem.

 

# include <stdio.h># include <conio.h># include <stdlib.h># include <string.h>int porownaj( const void *a, const void *b){return (strcmp((char *)a,(char *)b) );}int main(void) {int i,lw;//char *c={"cos"};char A[10][10];char B[10][10];clrscr();printf("Podaj liczbe wierszy =");scanf("%d",&lw);fflush(stdin);for(i=1;i<lw+1;i++){printf("\nWpisz tekst %d: ",i);gets(A[i]);}for(i=1;i<lw+1;i++){//c=A[i];//B[i]=c;printf("\nWpisz tekst %d: ",i);gets(B[i]);}qsort((void *)B, 10, sizeof(A[0]), porownaj);for (i=1; i<lw+1; i++)printf("\n%s\t %s\n", A[i], B[i]);getch();return 0;}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Fajnie, że ktoś stara mi się pomóc, lecz ten link prowadzi do programów napisanych w Pascalu, a ja muszę to napisać w C z poleceniem qsort i to na jutro. Napisałem program na podstawie tego zamieszczonego wyżej, ale trzeba wprowadzać dwa razy te same dane to dwóch różnych tablic. Nie wiem czy rozumiecie na czym polega problem.

 

# include <stdio.h># include <conio.h># include <stdlib.h># include <string.h>int porownaj( const void *a, const void *b){return (strcmp((char *)a,(char *)b) );}int main(void) {int i,lw;//char *c={"cos"};char A[10][10];char B[10][10];clrscr();printf("Podaj liczbe wierszy =");scanf("%d",&lw);fflush(stdin);for(i=1;i<lw+1;i++){printf("\nWpisz tekst %d: ",i);gets(A[i]);}for(i=1;i<lw+1;i++){//c=A[i];//B[i]=c;printf("\nWpisz tekst %d: ",i);gets(B[i]);}qsort((void *)B, 10, sizeof(A[0]), porownaj);for (i=1; i<lw+1; i++)printf("\n%s\t %s\n", A[i], B[i]);getch();return 0;}

:angry: lol tam masz podane ładnie jak na tacy wszystkie sortowania w róznych językach w tym i c++ a ty mówisz że nie ma... poszukaj bo tam jest wsyskto fantastycznie wyjasnione.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...