Probleme mit struct
-
Hallo,
ich hab ein sehr merkwürdiges Problem... Ich soll ein Programm schreiben, das komplexe Zahlen in einer Struktur ablegt. Im Folgenden mein Programmrumpf zum einlesen der Zahlen. Leider speichert das Programm ausschließlich den Realteil und nicht auch den Imaginärteil...mir ist leider auch nach ausführlicher Lektüre von Lehrbuch und Internet nicht klar, warum das so ist...#include <stdio.h> #include <stdlib.h> struct complex { double real; double imag; }; struct complex a; int main () { printf("\nRe: "); scanf("%d", &a.real); printf("\nIm: "); scanf("%d", &a.imag); printf("%d i%d", a.real, a.imag); return 0; }
-
Vielleicht ist noch ein \n im Eingabepuffer, das musst du vorher noch rauslesen.
-
Du möchtest gerne double-Werte einlesen, gibst als Format aber %d an. Versuch es stattdessen mal mit %lf (bei Ein- und Ausgabe).
-
test.c: In function ‘int main()’: test.c:13: warning: format ‘%d’ expects type ‘int*’, but argument 2 has type ‘double*’ test.c:15: warning: format ‘%d’ expects type ‘int*’, but argument 2 has type ‘double*’ test.c:16: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘double’ test.c:16: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘double’
edit: _matze war schneller. Moral von der Geschichte: Bring deinem Compiler bei, mehr zu quängeln.
edit2: Jetzt habe ich tatsächlich _matzes Name falsch geschrieben. Bezeichner mit Unterstrich am Anfang sind reserviert für die Standardbibliothek!
-
SeppJ schrieb:
Bezeichner mit Unterstrich am Anfang sind reserviert für die Standardbibliothek!
Ja klar, was denkst du, wo ich herkomme?
-
Danke für die schnelle Hilfe, das war natürlich das Problem
Ich hab CodeBlocks unter Ubuntu laufen... der meckert praktisch nie...ist etwas nervig, weil ich regelmäßig in der Info-Übung am WindowsPc andere Programmausgaben erhalte als daheim, bzw, Progs, die bei mir liefen plötzlich nicht mehr wollen...
-
CodeBlocks benutzt intern doch sicherlich den GCC, der warnt bei obigem Fehler sogar ganz ohne Warnoptionen. Ansonsten sind -Wall -Wextra Pflicht. Du musst deiner IDE nur noch irgendwie beibringen, dir diese Ausgaben zu zeigen.