C: Wie kann ich die Position einer Zahl in einem Array finden?

2 Antworten

Eine Aufgabe, für die es viele verschiedene Lösungen gibt. Für den Anfang brauchst du ungefähr das hier:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int liste[] = { 1, 2, 4, 7, 9 };
    int treffer = -1;
    int i;

    for (i = 1; i < 5; i++) {
        if (liste[i] == 4) {
           treffer = i;
           break;
        }
   }

   if (treffer == -1) {
       printf("Die Zahl wurde nicht gefunden\n");
   } else {
       printf("Die Zahl steht in Position %d\n", treffer);
   }

   return 0;
}

Du musst den Fall bedenken, dass die gesuchte Zahl in dem Feld gar nicht vorkommt. Im oben gezeigten Programm ist folgendes zu beachten:

  1. Die Variable treffer soll nach dem Verlassen der Schleife die Position angeben, in der die gesuchte Zahl gefunden wurde, oder einen Hinweis, dass die Zahl nicht gefunden werden konnte.
  2. Die Variable treffer wird vor dem Betreten der Schleife mit dem Wert -1 vorbesetzt. Dieser Wert wird, wenn er nicht veränbdert wird, später anzeigen, dass die gesuchte Zahl nicht gefunden werden konnte.
  3. Wenn die Zahl in der schleife gefunden werden konnte, wird der Variablen treffer der aktuelle Wert der Laufvariablen i zugewiesen und die Schleife mit break sofort verlassen.
  4. Nach dem Verlassen der Schleife verwendest du eine Fallunterscheidung, mit der du unterscheidest ziwschen dem Fall, dass die gesuchte Zahl nicht gefunden werden konnte und dem Fall, dass die Zahl doch gefunden wurde.

Der Nächste Schritt der Programmentwicklung könnte nun sein, das Suchverfahren als Funktion so zu programmieren, dass es auf Felder verschiedener Größen anwendbar wird.

Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler

Dein Ansatz ist goldrichtig. Du iterierst über den array und checkst an jedem Index, ob die Zahl gefunden wurde. Stichwort Iterieren - Du benötigst also eine Schleife. Kommentiere gerne, wenn das noch nicht genug Hilfe war.

Woher ich das weiß:Studium / Ausbildung – B.Sc. Computer Science