Hallo Community,
ich habe hier ein kleines Programmierproblem. Habe jetzt schon ein paar Tage verschiedene Tutorials durchforstet, aber komme nicht drauf, was genau falsch ist.
Ich studiere Telekommunikationstechnik, wozu programmieren jetzt nicht unbedingt zählt, aber da es auch Informatik beinhaltet, komme ich dem Ganzen nicht aus.
Wir haben die ersten zwei Semester die Grundlagen der Informatik erlernt. (Algorithmen, Schleifen, Sortierung usw.) Aber alles mit Pseudocode.
Unser Prof. will aber jetzt ein Funktionsfähiges Programm in C haben.
Ich kann ein wenig Java von daher ist mir Programmieren nicht komplett fremd.
Ich habe mich für den HeapSort-Algorithmus entschieden.
In der Aufgabenstellung wird verlangt, dass das Programm über ein Menü verfügt, mit dem man Werte Eingeben kann, diese sich ausgeben lassen kann und schrittweise sortieren kann.
Hier mal mein Quellcode:
So. Meine Funktion Eingabe funktioniert wunderbar.
Wenn ich aber dann das Eingegebene ausgeben will, dann kommt immer nur "-1"
Da ich mir in der Funktion Ausgabe() mal testweise mit der Zeile "printf("%i \n", anzahl);" den Wert der Variable anzahl anzeigen lasse, vermute ich, dass die "-1" der Wert dieser Variable ist und er deswegen auch die darauffolgende for-Schleife nicht durchführt.
Weiterhin denke ich mal, dass er in der Eingabe-Funktion das Array Eingabe und den Wert von anzahl entweder nicht zurückgibt, damit ich ihn in der anderen Funktion aufrufen kann, oder ich den vielleicht irgendwo "überschreibe"?
Ich bin halt wirklich etwas unbeholfen, weil mir einfach die allgemeinen Regel von C fehlen, ich aber nicht so viel Zeit habe um die Sprache von Grund auf zu lernen.
Vielen Dank schon mal, wenn mir jemand weiterhelfen kann
mfg Unbitable
ich habe hier ein kleines Programmierproblem. Habe jetzt schon ein paar Tage verschiedene Tutorials durchforstet, aber komme nicht drauf, was genau falsch ist.
Ich studiere Telekommunikationstechnik, wozu programmieren jetzt nicht unbedingt zählt, aber da es auch Informatik beinhaltet, komme ich dem Ganzen nicht aus.
Wir haben die ersten zwei Semester die Grundlagen der Informatik erlernt. (Algorithmen, Schleifen, Sortierung usw.) Aber alles mit Pseudocode.
Unser Prof. will aber jetzt ein Funktionsfähiges Programm in C haben.
Ich kann ein wenig Java von daher ist mir Programmieren nicht komplett fremd.
Ich habe mich für den HeapSort-Algorithmus entschieden.
In der Aufgabenstellung wird verlangt, dass das Programm über ein Menü verfügt, mit dem man Werte Eingeben kann, diese sich ausgeben lassen kann und schrittweise sortieren kann.
Hier mal mein Quellcode:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
//Menueauswahl//
int main(void)
{
char wahl;
wahl = ' ';
while (wahl != 'B')
{
printf(" Hauptmenue\n");
printf(" =========\n");
printf(" (A)usgabe\n");
printf(" (E)ingabe\n");
printf(" (S)ortierung\n");
printf(" (B)eenden\n");
printf(" Bitte waehle einen Menuepunkt aus!\n");
wahl = toupper(getch());
printf("---%c---\n", wahl);
switch (wahl)
{
case 'A' : printf("\nAusgabe wurde gewaehlt!\n\n"); Ausgabe(); break;
case 'E' : printf("\nEingabe wurde gewaehlt!\n\n"); Eingabe(); break;
case 'S' : printf("\nSortierung wurde gewaehlt!\n\n"); break;
case 'B' : printf("\nDas Programm wird beendet...\n\n"); break;
default : printf("\nFalsche Taste!\n\n"); break;
}
}
}
int Ausgabe(int anzahl, int Eingabe[])
{
printf("%i \n", anzahl);
int j;
for(j = 1; j <= anzahl; j++)
{
printf("%i ",Eingabe[j]);
}
}
int Eingabe(int anzahl, int Eingabe[])
{
printf("Bitte geben sie die Anzahl der Elemente an, die sie eingeben moechten.\n");
scanf("%d", &anzahl);
printf("Bitte geben sie nacheinander die Elemente ein.\n");
anzahl = anzahl--;
int i;
for(i = 1; i <= anzahl; i++)
{
printf("Bitte Element %i eingeben...\n", i);
scanf("%d", &Eingabe[i]);
}
return anzahl, Eingabe[anzahl];
}
So. Meine Funktion Eingabe funktioniert wunderbar.
Wenn ich aber dann das Eingegebene ausgeben will, dann kommt immer nur "-1"
Da ich mir in der Funktion Ausgabe() mal testweise mit der Zeile "printf("%i \n", anzahl);" den Wert der Variable anzahl anzeigen lasse, vermute ich, dass die "-1" der Wert dieser Variable ist und er deswegen auch die darauffolgende for-Schleife nicht durchführt.
Weiterhin denke ich mal, dass er in der Eingabe-Funktion das Array Eingabe und den Wert von anzahl entweder nicht zurückgibt, damit ich ihn in der anderen Funktion aufrufen kann, oder ich den vielleicht irgendwo "überschreibe"?
Ich bin halt wirklich etwas unbeholfen, weil mir einfach die allgemeinen Regel von C fehlen, ich aber nicht so viel Zeit habe um die Sprache von Grund auf zu lernen.
Vielen Dank schon mal, wenn mir jemand weiterhelfen kann
mfg Unbitable