I
Hallo,
vielen Dank für die Hilfe bis hierhin. Ich bin schon ein Stückchen weiter gekommen. Hab nur noch ein Problem mit dem Debugger. Das Programm funktioniert bis (MySort 25.exe) so, wie ich es mir gedacht habe, erhöhe ich jedoch diese Zahl über 25, dann meldet sich der Debugger.
(Vielleicht sollte ich erwähnen, dass ich sowohl Microsoft Visual Studio und Dev-C++ gleichzeitig auf dem PC installiert habe)...
Hier mein geschriebenes C-Programm:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void bubble(int *a, int n);
void (*(sort_funk[1]))(int *a, int n)={ bubble};
// Die kommandozeilenparameter stehen in argv und die anzahl der parameter in argc
// in argv[0] steht der Programmaufruf
int main(int argc, char **argv)
{
int zahl;
int a[zahl], i, auswahl;
FILE *fIn, *fOut;
// Prüfen ob die anzahl korrekt ist
if (argc != 1)
{
// parameter dann weiter verarbeiten
// atoi wandelt einen string zu einem int
zahl = atoi(argv[1]);
}
srand(time(NULL));
if( NULL == (fIn = fopen( "UnSort.txt", "w")) )
{
printf( "\nError! Datei kann nicht geoeffnet werden %s \n", "UnSort.txt" );
return( -1);
}
if( NULL == (fOut = fopen( "erg.txt", "w")) )
{
printf( "\nError! Datei kann nicht geoeffnet werden %s \n", "erg.txt" );
return( -2);
}
printf("Anfaenglich initialisiertes Feld:\n");
for(i=0; i<zahl; ++i)
{
printf("%d, ", a[i]=rand()%100+1);
fprintf( fIn, "%d, ", a[i]);
}
printf("\b\b \n\n");
printf( "Um den Sortieralgorithmus zu starten, druecken Sie 1!\n" " (1) Bubble Sort\n");
do
{
printf(" > ");
scanf("%d", &auswahl);
}
while(auswahl<1 || auswahl>1);
sort_funk[auswahl-1](a, zahl);
printf("Sortiertes Feld:\n");
for(i=0; i<zahl; ++i)
{
printf("%d, ", a[i]);
fprintf(fOut, "%d, " , a[i]);
}
printf("\b\b \n\n");
fclose( fIn);
fclose( fOut);
system("Pause");
return 0;
}
void bubble(int *a, int n)
{
int hilf, i, j;
for(i=n-1; i>0; --i)
for(j=0; j<i; ++j)
if(a[j]>a[j+1])
{
hilf=a[j]; a[j]=a[j+1]; a[j+1]=hilf;
}
}