Ich muss sagen, dein "int *index" ist mir nicht geheuer. Du benutzt deinen Zeiger als wäre es eine ganz normale Variable, also "int index". Da du den Zeiger aber nie als Zeiger verwendest, könnte das tatsächlich so funktionieren - aber gut ist das definitiv nicht.
Das fehlende "return" hast du bisher auch nicht korrigiert. Den Zeiger auf "index", den du in "main()" übergibst, kann es nicht geben, weil es "index" nicht gibt.
Quote:
Originally Posted by NRj™
bool is_in(int x, int f[MAX], int *index) ist in der Aufgabenstellung vorgegeben. x ist die Zahl, die in dem Feld f gesucht wird. Und über den Referenzparameter index soll die Stelle des Vorkommens bestimmt werden. Könnt ihr mir das bitte etwas einfacher erklären?
|
Ich versuche es mal: Du übergibst der Funktion deine Zahl x, von der du die Position in deinem Feld f haben willst. Außerdem übergibst du den Zeiger auf eine weitere Zahl, in der dann die Position gespeichert werden soll. Wenn du die Zahl x in dem Feld f findest, solltest true (ich nehme an 1 ? kann nur C++) zurück geben (return) und vorher die Position in index speichern (*index = pos; ). Solltest du sie nicht finden gibst du false (also 0 ?) zurück.
In main() siehst du dir dann den Rückgabewert an, also war es 1 oder 0, und gibst dann entsprechen "gefunden %index" oder "nicht gefunden" aus. Außerdem legst du dir dort vorher den Feld f, die Zahl x und die Zahl index an, von der du dann einen Zeiger an die Funktion übergibst.
So, ich hoffe ich habe nicht zu viel Blödsinn aufgeschrieben. Mit C habe ich bisher nichts gemacht und mein C++ ist auch noch ausbaufähig. Um dir noch genauer zu zeigen wie du das löst, müsste man wahrscheinlich die Lösung schreiben und das ist nicht ganz der Sinn der Sache.