"...erneut deklariert als andere Art von symbol"?
#include <stdio.h>
#include <math.h>
double integrateF(double low, double high)
{
double low = 0;
double high = 20;
double delta_x=0;
double x, ans;
double s = 1/2*exp((-x*x)/2);
for(x=low;x<=high;x++)
delta_x = x+delta_x;
ans = delta_x*s;
return ans;
}
Er sagt, dass low und high sind "erneut deklariert als andere Art von symbol" und ich weiß nicht, was das bedeutet. Im Grunde, alles, was ich hier mache (LESEN: versuchen) ist die Integration von gering (die ich auf 0 gesetzt) bis hoch (20) zu finden, die Riemann-Summe. Die for-Schleife sieht ein bisschen trippy auch...ich bin so verloren.
EDIT:
#include <stdio.h>
#include <math.h>
double integrateF(double low, double high)
{
low = 0;
high = 20;
double delta_x=0;
double ans = 0;
double x;
double s = 1/2*exp((-x*x)/2);
for(x=low;x<=high;x++)
{
delta_x = x+delta_x;
ans = ans+(delta_x*s);
}
return ans;
}
^Das immer noch nicht funktioniert, nachdem Sie die geschweiften Klammern und alle. Er sagt: "undefined reference to 'WinMain@16'"...
- Verwenden Sie Klammern, Sonst wird man erwischt mit dem man die Hose unten - dies ist ein gutes Beispiel!
- Stellen Sie sicher, dass main() definiert. Überprüfen Sie meine aktualisierte Antwort!
- Nur eine Frage, wenn Sie nur mit Variablen Einstellungen in der Funktion, warum akzeptieren Sie diese als Parameter?
- Dieses Problem beheben
1/2
. Dies ist die integer-division und das Ergebnis ist 0. Verwenden0.5
direkt oder1.0/2
zumindest. - Sie müssen eine Funktion mit dem Namen
main
irgendwo in Ihrem Programm.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie redefinign niedrig und hoch in die Funktion, die Auseinandersetzung mit diesen in den Parametern definiert.
Die for-Schleife ist zu tun
meinst du es zu tun
Aber ich denke, Sie tun wollte
ans += delta_x*s;
low
undhigh
sind bereits als Parameter übergeben IhreintegrateF
Methode. Aber Sie sind erneut deklariert wieder innerhalb der Methode. Daher der Fehler.low und high sind bereits als Parameter übergeben Ihre integrateF Methode und Sie erneut deklariert werden wieder innerhalb der Methode..
Und x ist nicht ein Wert zugewiesen, wenn es für die Berechnung von s..
double x, ans;
double s = 1/2*exp((-x*x)/2);
Möchten Sie vielleicht, um zu versuchen, wie diese:-
oder
EDIT:-
Stellen Sie sicher, Sie haben
main() or WinMain()
definiert. Überprüfen Sie auch, dass main() nicht definiert ist innerhalb des namespaceEine weitere Möglichkeit, die diesen Fehler verursachen können, ist durch die "Neudefinition" Ihre Funktion in einem code, in denen das Namensschild ist bereits als eine variable, die außerhalb der main-Funktion - so (Pseudo-code):
Sie haben nicht einmal rufen Sie die Funktion innerhalb von main zu haben, einen Fehler versucht zu kompilieren, statt, der compiler kann nicht einen Sinn:
double integrateF = 0 = (double, double) { };
außerhalb der main-Funktion.
Der Fehler ist, da erklären Sie low-und high - zwei mal
Ihre Methode sollte so etwas wie dieses
}
wenn u haben, deklariert den Datentyp der Parameter, die Sie nicht haben, um neu zu erklären.
statt
sollten Sie es so machen