473,405 Members | 2,187 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

Einsendeaufgabe

Hallo alle zusammen, bin neu hier und habe ein Problem (was sonst).
Ich habe eine Einsendeaufgabe von SGD (C/C++ in Windows) mit der ich
einfach nicht klar komme.
Es sollen die fehlenden Zeilen eingetragen werden, die ich hier mit
xxxxxx gekennzeichnet habe eingetragen werden.
Es ist zwar lang, aber vielleicht blickt das ja einer.
Zum Programm gehört noch eine Headerdatei mit der Variable (char
*meldung[]) in der die Strings zum sortieren sind.
Für jede Hilfe wäre ich echt dankbar.

/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
/* E3_5 Sortieren mit Bubblesort. Programm zur Einsendeaufgabe 3 CWI5
*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<time.h>
#include"c:\cwi\_lbx\e3_5.h"
#define ZEICHEN
//#define BIL clrscr()
/*@@@@@@@@@@@@@@@@@@@@@@@@@ Deklarationen
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/

xxxxxx /* char Zeiger auf Zeiger auf Text */

/*@@@@@@@@@@@@@@@@@@@ Funktionsprototypen
@@@@@@@@@@@@@@@@@@@@@@@*/
void bubble_sort(char *zeiger[], long anzahl, int(*vergl)(char *a,
char *b));
void array_ausgabe(char **zz_zeiger,long anzahl);
void tausch_zeiger(char *zeiger[],int x, int y);
void tausch_zeichen(char *zeiger[],int x, int y);
int kleiner(char *a, char *b);

/*@@@@@@@@@@@@@@@@@@@@@* Hauptfunktion
@@@@@@@@@@@@@@@@@@@@@@@*/
void main(void)
{
size_t stueck;
clock_t old_time, new_time, time_dif;

stueck = sizeof(meldung)/sizeof(char *); /* F"ngt bei null an
*/

puts("@@* Demonstration von Bubbelsort mit Zeigern auf Funktionen
@@*");
//BIL;

xxxxxx /* char Zeiger auf
Arrayanfang */

puts("@@@ Ausgabe der unsortierten Strings @@@");

array_ausgabe(zz_text,stueck);
getch();
puts("@@@ Sortierung durch lexikographischen Stringvergleich @@@");

old_time = clock();
bubble_sort(meldung,stueck,kleiner); /* Sortierung */
new_time = clock();

zz_text = meldung; /* char Zeiger auf Arrayanfang
*/
array_ausgabe(zz_text,stueck);

time_dif = new_time - old_time ;
printf("Die Sortierung hat %ld clocktic gedauert!",
time_dif );
getch();
}
/*@@@@@@@@@@@@@@@@@@@@@ Sortierfunktion
@@@@@@@@@@@@@@@@@@@@@@@@*/
/* Aufgabe der Funktion:
*/
/* Sortiert ein Array von Zeigern auf Zeichenketten
*/
/* Dadurch wird die Sortierung schneller ,weil nur noch Zeiger
*/
/* getauscht werden und die Daten im Array stehen bleiben!
*/
/*
*/
/* Rueckgabewert: void
*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
void bubble_sort(char *zeiger[],long anzahl, int (*vergl)(char *a,
char *b))
{
int durchgang; /* Zaehlt die Durchgaenge
*/
int position; /* Merkt sich d. Pos.im Array
*/
int vergleichswert; /* Enthaelt Ergebnis des Vergleichs zweier
Werte*/

for( durchgang = 1; durchgang < anzahl; durchgang++)
{
for( position = 0; position < (anzahl - durchgang); position++)
{
vergleichswert = (*vergl)( zeiger[position],
zeiger[position+1]);
if(vergleichswert)
{
#ifdef ZEICHENz

xxxxxx
#else

xxxxxx
#endif
}
} /* Position
*/
} /* Durchgang
*/
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
/* Aufgabe der Funktion: Soll die 'Zeiger auf das Array' tauschen
*/
/* Dazu muss es einen Zeiger in einer temporaeren Variablen zwischen-
*/
/* speichern
*/
/*
*/
/* Rueckgabewert: void
*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/

void tausch_zeiger(char *array[], int x, int y) /* Vertausche Pointer
*/
{
char *temp;

xxxxxx
array[x] = array[y];

xxxxxx
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
/* Aufgabe der Funktion: Soll die Strings auf die die Zeiger zeigen
*/
/* tauschen. Dazu muss es einen kompletten String in einem temporaeren
*/
/* String zwischenspeichern
*/
/*
*/
/* Rueckgabewert: void
*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/

void tausch_zeichen(char *array[], int x, int y) /* Vertausche Strings
*/
{ /* zeichenweise durch
*/
char temp[300]; /* umkopieren.
*/

xxxxxx
strcpy(array[x], array[y]);

xxxxxx
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
/* Aufgabe der Funktion: Gibt das Array zeilenweise aus.
*/
/* Besonderheit : Es wird ein Zeiger auf ein Zeigerarray verwendet
*/
/*
*/
/* Rueckgabewert: keiner
*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
void array_ausgabe(char **zz_zeiger,long anzahl)
{
int index;
for( index = 0; index < anzahl ; index++, zz_zeiger++)
{
printf("%2d : %s \n",index,*zz_zeiger);
}
printf("\n");
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
/* Funktion "Vergleichen", hier: Ist Wert a kleiner als Wert b?
*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/

int kleiner(char *a, char *b)
{
int rueck = 0;
for ( ; *a == *b && *a != 0; a++, b++);

xxxxxx
rueck = 1;
return(rueck);
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*/
Nov 14 '05 #1
3 1780
Bruno Rosenau wrote:
#include<conio.h> #include"c:\cwi\_lbx\e3_5.h"


If you can post a version of your code,
that doesn't use features from those two non standard headers,
then the problems with your code would be on topic.

If you post to a German (?) language newsgroup,
they'll probably make the same recomendation.

--
pete
Nov 14 '05 #2
On Tue, 17 Feb 2004 07:57:51 -0800, Bruno Rosenau wrote:

[problem in german]

Bitte de.comp.lang.c benützen fur deutsche fragen.

Was that correct german anyone?
--
NPV

"the large print giveth, and the small print taketh away"
Tom Waits - Step right up

Nov 14 '05 #3
Hi Nils,

not to bad ;-),
just the vowel-mutations are wrong
it is f"ur instead of fur and benutzen.
It sounds better if you move the verb to the
end. Anyway, ... better than my knowledge of
your mothertongue (Dutch?)

Nils Petter Vaskinn schrieb:
On Tue, 17 Feb 2004 07:57:51 -0800, Bruno Rosenau wrote:

[problem in german]

Bitte de.comp.lang.c benützen fur deutsche fragen.

Was that correct german anyone?


Nov 14 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.