Sponny
Lt. Commander
- Registriert
- März 2008
- Beiträge
- 1.052
Hallo liebe Community,
ich habe folgendes auf meinem Windows Rechner unter dem IDE Eclipse (Compiler: MinGW Gcc) programmiert.
Das Programm soll, unter Eingabe einer Zahl (z.b. 5 oder 10) angeben, ob diese in meinem Zahlenarray vorhanden ist.
Desweitern soll die Position dazu angeben werden.
Mein Programm funktioniert einwandfrei für die im Array befindlichen Zahlen. Versuche ich es aber mit einer nicht im Array auftretenden Zahl, klappt das Ganze nicht.
Mein IDE zeigt mir bei den fett gedruckten Zeilen folgenden Warnungen:
"passing argument 3 of 'find' from incompatible pointer type [enable by default]" (siehe erste fett markierte Zeile unten)
"format '%d' expects argument of typ int, but argument 2 has typ 'int *' (siehe zweite fett markierte Zeile unten)
Ich hoffe Ihr könnt mir mit der Lösung meines Problems helfen.
Vielen Dank im Voraus.
LG
ich habe folgendes auf meinem Windows Rechner unter dem IDE Eclipse (Compiler: MinGW Gcc) programmiert.
Das Programm soll, unter Eingabe einer Zahl (z.b. 5 oder 10) angeben, ob diese in meinem Zahlenarray vorhanden ist.
Desweitern soll die Position dazu angeben werden.
Mein Programm funktioniert einwandfrei für die im Array befindlichen Zahlen. Versuche ich es aber mit einer nicht im Array auftretenden Zahl, klappt das Ganze nicht.
Mein IDE zeigt mir bei den fett gedruckten Zeilen folgenden Warnungen:
"passing argument 3 of 'find' from incompatible pointer type [enable by default]" (siehe erste fett markierte Zeile unten)
"format '%d' expects argument of typ int, but argument 2 has typ 'int *' (siehe zweite fett markierte Zeile unten)
#include <stdio.h>
#define MAX 10
#define bool int
#define true 1
#define false 0
bool find(int x, int f[MAX], int *index) {
int i = 0;
for (i = 0; i <= MAX; i++) {
if (x == f) {
*index = i + 1;
return true;
}
}
return false;
}
int main() {
int* index = NULL;
int suche = 0;
int zahlen[MAX] = { 3, 5, 3, 4, 2, 1, 7, 8, 1, 9 };
printf("Welche Zahl soll gesucht werden? ");
fflush(stdout);
scanf("%d", &suche);
if (find(suche, zahlen, &index)) {
printf("true ");
printf("An der stelle %d", index);
} else
printf("false ");
return 0;
}
Ich hoffe Ihr könnt mir mit der Lösung meines Problems helfen.
Vielen Dank im Voraus.
LG