Hallo,
ich habe hier ein kleines Programm, das nicht kompiliert werden will.
Vielleicht hat jemand Zeit und Lust kurz einen Blick drauf zu werfen, um mir zu sagen, warum er den Pointer nicht gleich dem anderen Pointer setzen will.
bei dieser Zeile:
h=in§;
sagt kompilier dass: incompatible types in assignment
Ich habe schon alles mögliche durchgespielt und gesucht und leute gefragt, keiner weiss eine antwort.
Kurz zum Programm:
Es sollen komplexe Zeilen mit Real und Imaginärteil eingegeben werden, dann soll der Zeiger auf next zeigen (praktisch das nächste element) und wieder in die While-schleife zurückkehren. Das Problem ist nur, dass nach der ersten Eingabe der Zeiger sich nicht gleich dem anderen Zeiger setzen will…
Der Fehler liegt anscheinend in der in() funktion.
Ach und das Mainprogramm darf nicht verändert werden.
#include
struct complex
{
float x, y;
struct complex *next;
};
struct complex array[100];
struct complex in(struct complex *p)
{
p=array;
printf(„Bitte den Realteil eingeben: „);
scanf(“%f“, &p->x);
printf(„Bitte den Imaginaerteil eingeben: „);
scanf(“%f“, &p->y);
p=p->next;
return *p;
}
main()
{
/*Initialisierung und Titel */
struct complex *p=0, *h;
unsigned char c=‚j‘;
printf(„Demo: Lineare Liste komplexer Zahlen\n“);
/*Eingabe*/
while(c==‚j‘)
{
h=in§;
p = h;
printf("? Weiter mit „j“: „);
scanf(“%1s", &c);
}
/*Verarbeitung: entfällt*/
getch();
return 0;
}