Eine Funktion die das Minimum eines Zahlen Arrays ausgibt (C)?
Also ich soll bekomm ein Array und die Länge des Arrays. Wie würde eine void Funktion aussehen?
Mein Code sieht bisher so aus, aber da gibt es Fehler und ich weiß nicht woran das liegt:
void minimum(int* numbers, int laenge) {
for(int i=0; i<laenge; i++)
{
for(int k=0; k<laenge; k++)
{
if(numbers[i]<numbers[k])
{
numbers[i] = numbers[i];
}
else
{
numbers[i] = numbers[k];
}
}
}
}
Fehler: invalid use of void expression
Würde mich über Vorschläge freuen, aber bitte keine fertigen Codes :D
1 Antwort
Ersteinmal: Deine Funktion macht es komplizierter, als es ist. Du kannst das in O(n) lösen, du brauchst hier aber O(n²) und wo das Ergebnis steht ist auch fraglich.
Dann zu deinem Problem: Das lässt sich hier nicht identifizieren, da braäcuhte man den gesamten Code. Offenbar steht das Schlüsselwort "void" im falschem Kontext, womöglich hast du zuvor eine Klammer oder einen Strichpunkt oder ähnliches vergessen?
Den gesamten Code habe ich nicht, da es eine Aufgabe ist, wo ich nur eine Beispieleingabe bekomme.
Also auch keinerlei Kontext zur Funktion? Hm, dann ist das Dingens, wo du das eingibst, evtl. verbuggt?
Was meinst du eigentlich mit O(n) und O(n²)?
Die Laufzeitkomplexität in O-Notation:
Vllt. hilft dir ja die Info das die Funktion 2 Übergabeparameter enthält. Einen Pointer auf einen Array und die Länge des Arrays.
Bist du dir sicher, dass du "void" zurückgeben sollst? Internetrecherchen sagen, der Fehler tritt auf, wenn man versucht, den Rückgabetyp einer void-Funktion zu verwenden, was offensichtlich nicht geht. Wenn der Testcase das tut, dann sorgt das evtl. für den Fehler?
Ich bin mir grade auch nicht mehr sicher :D Ich werde nächste Woche mal meinen Prof fragen. Die Sache ist, die anderen Aufgaben waren ähnlich nur mit char arrays z.B. das ich 2 Strings verbinden soll ohne irgendwelche Bibliotheks-Funktionen. Die habe ich auch mit einer void funktion gelöst.
Zum Kommentar davor
Die Funktion (den Code den ich schreibe) pack ich in eine Internetseite (IDE) und nachdem ich den Code eingebe und "run" drücke, wird der Fehler auf der "Konsole" angezeigt.
Ok werde ich mal machen. Trotzdem danke für die Hilfe :D
Also ich habe einfach vom void auf int geändert und habe return *numbers hinzugefügt und schon klappt es...
Ich glaub dir gern das mein Code komplizierter ist, als es eigentlich sein sollte. Den gesamten Code habe ich nicht, da es eine Aufgabe ist, wo ich nur eine Beispieleingabe bekomme. Mit Return wäre die Aufgabe auch viel einfacher... Was meinst du eigentlich mit O(n) und O(n²)? Trotzdem danke für deine Hilfe :D