Nicht deklarierter Bezeichner
-
Hallo, ich bekomme die Meldung, das in zeile 13 ein nicht deklarierter
Bezeichner i vorhanden ist. Ich verstehe einfach nicht wo....#include <stdlib.h> #include <stdio.h> void deltaTemp (double x, int N) { double startTemp = 4.0; double stepTemp = x*2.0; printf ("X : %.2f\n", x); printf ("Starttemperatur: %.2f\n", startTemp); int i; for (i = 0; i < N; i++) { stepTemp += stepTemp; stepTemp += startTemp; printf ("Temperatur nach der Periode: %.2f\n", stepTemp); stepTemp -= startTemp; } } int main (void) { double x; int N; printf ("Geben Sie ein, wie viel Kohle zugefuegt werden soll: "); scanf ("%f", &x); printf ("Geben Sie ein, wie oft Kohle zugefuegt werden soll: "); scanf ("%d", &N); deltaTemp (x, N); system ("PAUSE"); }
-
Vor dem C99-Standard durfte man noch nicht mitten in den Funktionen Variablen definieren ( sondern nur am Anfang).
Verschiebe Zeile 12 zwischen 7 und 8 und es sollte gehen.
Welchen Compiler nimmst du?
-
gcc Compiler
-
Wenn ich die Variable wie du gesagt hast nach oben versetze,
funktionierts, Danke.Allerdings weiß ich nicht warum die Variable x 0.0, nachdem
ich eine Zahl für x eingegeben habe...
-
Wenn du nicht einen ganz alten gcc hast,
kannst du C99 oder C11 einstellen.
-
Ach, noch was:
Der Formatspecifier bei scanf() für double ist %lfscanf ("%lf", &x);
Bevor du es falsch verstehst:
Bei printf() ist es %f für double und float.Die Funktionen sehen nur ähnlich aus. Da gibt es wichtige Unterschiede bei den Formatangaben.
-
Ah also lf für long float....
jo dann funktioniert das ganze auch, danke
-
Kann ich auch in VS2008 au C99/C11 Standert umstellen? Grüße
-
CDiscoverer schrieb:
Kann ich auch in VS2008 au C99/C11 Standert umstellen? Grüße
Nein.