qsort externerlinkerfehler???
-
HI leute
naja ich raffs halt noch net so ganz was man bei qsortt alles mit beben muss
naja vielleicht ligt das problem auch wo anders
hab nun die ganze seit rumgewurschtet so das keine fehler mehr angezeigt werden
ausser linker fehlerwähre toll wenn sichs mal einer an sieht was ich so alles verpatz hab
viel spass beim lacenich weiss auch nicht soo genau ob ich nun das ganze mit Quicksort()
oder mit qsort(.....) aufrufen soll#include <stdlib.h> ///Einfuerung der **standard Bibliotheken
#include <stdio.h>
#include <time.h>
#include <io.h>
#include <string.h>
#include <search.h>int n,Werte1[_MAX_PATH]; //array
int *pointW1 =Werte1;
void Zufallsfunktion();
//void Quicksort();
void qsort(int Werte1[], int left, int right);
void swap(int Werte1[], int i, int j);
int left,right,i,j,last;void Inhalt();
int main() //Hauptfunktion
{
printf("\n\n\nSie haben ein Sortierungssprogramm gestartet!");
printf("\n\nGeben sie jetzt die Anzahl der Zahlen ein:");
scanf("%i", &n); //Eingabe wird gespeichert und c zugewiesen//Bildschirmeingabe muss eine Zahl sein
while ((n!=getchar()) && n==0){
printf("Bitte geben sie eine Zahl ein!!!\n\n");
break;
}
Zufallsfunktion();//Quicksort();
void qsort(int Werte1[], int left, int right);
Inhalt();
return 0; //gib 0 zurueck
}
//----------------------------------------------------------
void Zufallsfunktion()
{
int u;
int z;
srand( (unsigned)time( NULL ) ); //erzeuge zufällige Zahlen
for( u = 0; u < n; u++ ){
printf("Zahl %i =",u);
z = rand();
pointW1 = z; // füllen des arry
printf("%i \n",z);
pointW1++;
}
// right = pointW1;
for( u = 0; u < n; u++ ){
pointW1--;
// left =pointW1;
}
return ;
}
//-----------------------------------------------------------
void Inhalt()
{
int u;
for( u = 0; u < n; u++ ){
printf("ARRAY =%i \n",Werte1[u]);
}
return;
}
//*******************************************************
//-----------------------------------------------------------
void qsort(int Werte1[], int left, int right)
//void Quicksort()
{
void swap(int Werte1[], int i, int j);if(left >= right){
return;
}
swap(Werte1,left,(left+right)/2);
last = left;
for (i=left+1;i<=right;i++)
if(Werte1[i]<Werte1[left])
swap(Werte1,++last,i);
swap(Werte1,left,last);
qsort(Werte1,left,last-1);
qsort(Werte1,last+1,right);
}
//------------------------------------------------------------
void swap(int Werte1[], int i, int j)
{
int temp;
temp = Werte1[i];
Werte1[i] = Werte1[j];
Werte1[j] = temp;
}
//------------------------------------------------------------**
-
ach soo manchmal kam was von wegen
keine ueberladene funktion akzeptiert zwei Parameter
-
Nenn das mal in myqsort um
-
kommt leider immer noch der linker fehler
halt jetzt von myqsort
-
Komisch, ausser dass ich kein _MAX_PATH habe, mosert mein Compiler nicht.
Kommt der Linkerfehler auch bei viel einfacheren Programmen?
Welchen Compiler benutzt Du? Vielleicht braucht der noch Settings, welche Standard-Libraries er einbinden soll.Übrigens rufst Du Dein qsort auch nie richtig auf, Du verwendest nur die Deklaration.
BTW: Editiere hier in das Listing mal Codetags rein, damit man ggf. Fehler besser finden kann.