000
29.03.2004, 21:36 Uhr
~klaus loering
Gast
|
Hallo...
Ich habe folgendes Problem:
Ich will/soll/werde/muss ein C programm erstellen welches im wesentlichen eigentlich nur bubblesort bewerkstelligen soll...
Allerdings gibts da ein paar Dinge mit denen ich mich sehr schwer tue...
Das Programm muss mit verschiedenen Dateitypen (int,double etc.) arbeiten können...allerdings soll der ent. Speicher für die zu sortierende Liste per malloc beschafft werden...
Genau hier will es nicht klappen :(...entweder hasst mich malloc,mein compler,ANSI C oder ich steh wirklich boese aufm schlauch...
Vielleicht wäre jmd so nett mir ein Beispiel zu posten,wie ich bei einem string per malloc speicher fuer ent. Dateitypen allokiere...
Ich hab auch im OpenBook nachgsehen und K+R gewaelzt...aber irgendwie hat mich das alles nicht weitergebracht :-/
Ich poste mal als Anhang meinen bisherigen Code...allerdings kann der nur als Orientierung dienen da ich den mittlerweile derart oft umgeschrieben,geloescht etc. habe, das ich ihn eh von grund auf neu schreiben muss (am schluss hab ich schon fast zufallsmaessig an malloc rumprobiert...)
| C++: |
#include <stdlib.h> #include <stdio.h>
main() { int *liste; /* Zeiger auf 1. Element im Datenvektor */ int n,l; /* Anzahl und Länge der Datenobjekte */ extern int vgl(); /* Vergleichsfunktion */ int choice; int counter;
/**** Datenerfassung****/ eingabe(&liste, &n, &l,&choice);
/****Sortierung****/ //if(n > 1) //qsort(liste,n,l,vgl);
/****Ausgabe****/ ausgabe(liste, n,l,choice); }
eingabe(int *liste,int n,int l,int choice) { choice=0;
puts("Bitte einen ent. Dateityp auswaehlen\n"); puts("1 für Int,2 für double\n\n"); scanf("%d",&choice); puts("\n\n");
switch(choice) { case 1: *liste=(int *)malloc(10*sizeof(int)); liste[0]='5'; liste[1]='6'; liste[2]='7'; liste[3]='8'; liste[4]='9'; liste[5]='10'; liste[6]='1'; liste[7]='2'; liste[8]='3'; liste[9]='4'; puts("Liste wird automatisch mit 10 Int Werten gefuellt"); break; case 2: *liste=(int *)malloc(10*sizeof(double)); liste[0]='5'; liste[1]='6'; liste[2]='7'; liste[3]='8'; liste[4]='9'; liste[5]='10'; liste[6]='1'; liste[7]='2'; liste[8]='3'; liste[9]='4'; puts("Liste wird automatisch mit 10 double Werten gefuellt"); break;
default: puts("Falsche Eingabe! Programm wird beendet"); // exit();
} }
ausgabe(int *liste,int n,int l,int choice,int counter) { puts("Ausgabe der Liste\n\n");
switch(choice) { case 1: puts("Ausgabe der sortierten int Werte\n"); break;
case 2: puts("Ausgabe der sortierten double Werte\n"); break; } counter=0; for(counter;counter<=9;counter++) { printf("%c\n",&liste[counter]); } }
|
Danke schonmal...
yours ara edit mike: cpp Tags -> [ cpp ] [ /cpp ] Dieser Post wurde am 30.03.2004 um 09:38 Uhr von mike editiert. |