Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

In C 10 Namen sortieren

faby71 / 3 Antworten / Baumansicht Nickles

Hallo,


Ich möchte:


1- 10 Namen (Strings)-------> Länge 20 anlegen / einlesen


2- Sortieren


3- Ausgeben


ich habe bis jetzt:


#include<stdio>
#include<conio.h>
#include<string.h>


main()
{
 int n,poskl,j,h;
   char namen[5][20];    


   for (n=0; n<5; n++) 
   {
    printf("Name Nr %d: ",n+1);
    scanf("%s",namen[n]);
   }


   //HILFE WIE KANN ICH SORTIEREN



   for (n=0; n<5; n++) //Achtung von n=0 bis n=4 (n < 5)!!
   {
    printf("%s\n",namen[n]);
   }
   getch();
}

bei Antwort benachrichtigen
mr.escape faby71 „In C 10 Namen sortieren“
Optionen

1. Aus den "5"ern "10"er machen ;)
2. Folgendes vor main() einfügen:

typedef int (__cdecl *COMPARE )(const void *elem1, const void *elem2);
int namecomp(const char *arg1, const char *arg2){
return strcmp(arg1, arg2);
}

3. Folgendes nach "//HILFE WIE KANN ICH SORTIEREN" einfügen:
qsort(namen, 10/*5*/, 20, (COMPARE)namecomp);

4. Fertig.
Sollte der compiler noch meckern, fehlen evtl. einige header. Mault der linker dann sind es fehlende libraries. In allen anderen fällen, war ich wohl schon zu bluna.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
faby71 mr.escape „1. Aus den 5 ern 10 er machen 2. Folgendes vor main einfügen: typedef int...“
Optionen

Ja dass ist super aber ich darf keine:
-Zeiger benutzen
-typedef
-und qsort();
es ist dass möglich!!

faby71

bei Antwort benachrichtigen
mr.escape faby71 „Ja dass ist super aber ich darf keine: -Zeiger benutzen -typedef -und qsort es...“
Optionen
... aber ich darf keine:...
Böse welt! Wer verbietet einem sowas?

Ohne zeiger wird es aber kompliziert (z.b. strcmp). Den qsort könnte man selber nachbauen (quatsch) oder einfach einen bubble sort nehmen. Der typedef ist nur für eine einfachere schreibweise.

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen