Berechnung Integral.... wo hängt der Fehler ???
-
Ok, ich weiß jetzt wodran es lag und zwar war noch ein return, durch eine vorherige Eingabe im Speicher, wodurch das scanf abgebrochen wurde. Hab einfach noch ein fflush(stdin) reingesetzt und siehe es funzt.
Aber der Vergleichsoperator muss natürlich auch stimmen...Danke
-
el-duderado schrieb:
Ok, ich weiß jetzt wodran es lag und zwar war noch ein return, durch eine vorherige Eingabe im Speicher, wodurch das scanf abgebrochen wurde. Hab einfach noch ein fflush(stdin) reingesetzt und siehe es funzt.
Aber der Vergleichsoperator muss natürlich auch stimmen...Danke
falsch, falsch, falsch!
fflush(stdin) funzt nur bei MS compilern und ist KEIN ansi c. benutze es NIEMALS!
mit einem "return im speicher" hat das alles nichts zu tun.
dein vergleichsop stimmt NICHT! == ist vergleich, du aber hast = (zuweisung) verwendet.und jetzt erlange doch bitte schnellstmoeglich die erleuchtung.
-
Das war schon klar mit dem Vergleichsoperator, habe ich auch sofort geändert. Aber wenn du dir die Mühe machen möchtest und das Prog mal kompilierst, wirst du feststellen, dass er die scanf("%c",&neu); einfach übergeht. Das liegt meiner Meinung daran, dass ich im Speicher noch ein return hab und deshalb das scanf gleich weiter springt.
Ich könnte natürlich nochmal den Rückgabewert der scanf überprüfen, aber ich bin mir da eigentlich recht sicher.
-
Achso noch was, zum kompilieren benutze ich eigentlich immer dev-c++, da mir die Formatierung sowie die Fehlerüberprüfung darin aber garnicht gefällt, nehme ich dann immer visual c++. Evtl haste bezüglich des compilers ja noch einen Tipp
MfG
Micha
-
el-duderado schrieb:
Das liegt meiner Meinung daran, dass ich im Speicher noch ein return hab und deshalb das scanf gleich weiter springt.
deine meinung ist falsch, punkt. schlag dir den sch**** von wegen "return im speicher" aus dem kopf. klingt ja gerade zu als ob programmierung fuer dich etwas mit glauben und vermutungen zu tun haette.
das fuegst du bei den anderen variablendefinitionen hinzu:
int c;das setzt du unmittelbar vor die zeile mit dem scanf:
while ((c = getchar()) != EOF && c != '\n');machs einfach mal und tu nicht so als ob du wuesstest, was in deinem computer abgeht. das weiss dein computer naemlich besser als du
-
@rackwitz: Versteh deinen Standpunkt nicht - diese Vermutung ist durchaus legitm und dazu noch IMHO hier genau der Punkt!
Also was soll dann ein Spruch von wegen:c.rackwitz schrieb:
deine meinung ist falsch, punkt. schlag dir den sch**** von wegen "return im speicher" aus dem kopf. klingt ja gerade zu als ob programmierung fuer dich etwas mit glauben und vermutungen zu tun haette.
... dazu machst du durch deine "Lösung" (definitiv nicht failsave!) genau das: Du holst das return aus dem Eingabepuffer - zwar nur Nebeneffekt, aber immerhin:
c.rackwitz schrieb:
das setzt du unmittelbar vor die zeile mit dem scanf:
while ((c = getchar()) != EOF && c != '\n');machs einfach mal und tu nicht so als ob du wuesstest, was in deinem computer abgeht. das weiss dein computer naemlich besser als du
Sorry, aber in Verbindung damit verleihen solche Äusserungen deinen Postings eher Trollcharakter und kommt sehr arrogant rüber!
btw:
c.rackwitz schrieb:
und jetzt erlange doch bitte schnellstmoeglich die erleuchtung.
Wenn dich solche Fragen nerven, warum antwortest du drauf???
grüße
-
mir war nicht klar, dass du mit "return" einen zeilensprung meintest. in dem fall hast du recht, da koennte noch eins im puffer sein.
arroganz: du koenntest sehr wohl recht haben. ich werd mich aber dafuer nicht entschuldigen, weil ich mal davon ausgehen kann, dass hier keine mimosen mitlesen.
warum antworten: wenn ichs weiss, dann antworte ich, bevor sich ein paar noobs mit halbwissen gross fuehlen wollen.
-
persönlich hab ich kein Problem mit deinen Antworten, allerdings fand ich, dass dieser Thread einfach ein bisschen an Niveau verloren hatte ... und das eigentlich nur wegen zu ungenau gelesenen Postings oder Fehlinterpretationen.
Deshalb war ja auch DEINE Antwort zu schnell bzw. NICHT richtig:c.rackwitz schrieb:
deine meinung ist falsch, punkt. schlag dir den sch**** von wegen "return im speicher" aus dem kopf. klingt ja gerade zu als ob programmierung fuer dich etwas mit glauben und vermutungen zu tun haette.
Ansich kein Problem - passiert ja immer mal, aber da kann man doch Stil bewahren - oder muss ich also die Mimose auf mich beziehen?
-
Ich lass die Diskussion mal im Raum stehen und bin froh, dass die Sache jetzt wenigstens aufgeklärt ist.
Leider bin ich nicht so der Programmier-freak, sonst hätte ich sicherlich gleich gewusst, was c.rackwitz mit der while() Schleife meinte :D, nämlich genau das, was ich heraus gefunden hab.
So Thema abgeschlossen.... Danke!
-
double trapez_integr(double u,double o,int s,double(*f)(double)){ double i=0,r=0,d=(o-u)/--s; while(i<s) r+=d/2*(f(u+i*d)+f(++i*d+u)); return r; }