Wo ist der fehler C++

12/03/2011 18:39 ~*Breakdown*~#1
Hey eine frage ich soll hier mal für ein kollegen nachfragen wo hierdrin der fehler ist weil er den irgentwie nicht findet
bzw es fehlt irgentwas das programm startet nicht oder irgent wie sowas
Code:
#include<stdio.h>

void main (void)

{
float pi=1;
int nenner=3;
int nennerMax;
int methode=1; //um zu entscheiden ob "+" oder "-"


printf("geben sie den nenner ein");
scanf("%i",& nennerMax);
fflush(stdin);
do
{

do
{

pi = pi-1/nenner;

nenner=nenner+2;

methode=0;
}
while(methode=1);
do
{

pi = pi+1/nenner;

nenner=nenner+2;

methode=1;
}
while(methode=0);
}
while(nenner<=nennerMax); // solange bis nenner genauso gróß ist wie nennermax

pi=pi*4;

printf("nach der leibniz reihe lautet das ergebnis %0.8f",pi);

getchar();
}
12/03/2011 20:10 ms​#2
Erst einmal vergleicht man zwei Werte mit dem Operator ==. In zwei while-Teilen wird jeweils der Variable methode eine Zahl zugeordnet. Außerdem sind die beiden Schleifen dann Endlosschleifen, weil methode nie diesen Wert annimmt. Wahrscheinlich wollte er eigentlich if-Anweisungen benutzen.
12/03/2011 21:41 ~*Breakdown*~#3
mein kollege hat geschrieben:

es sind keine endlosschleifen, da er immer min. ein mal durch eine do-schleife geht und in ihr der wert so geändert wird, dass er eben das abbruchkriterium erfüllt.
12/03/2011 21:45 Dr. Coxxy#4
wenn er in der bedingung (methode = 0) steht wird das nichts.
er muss den vergleichsoperator '==' verwenden und nicht den zuweisungsoperator '='.
sag deinem freund:

1. er soll sich ein ordentliches buch anschaffen und sorgfältig lesen.
2. sich selber nen account hier machen, wenn er fragen hat.

außerdem bist du hier in der falschen section, c/c++ hat eine eigene...
12/03/2011 21:59 ms​#5
Quote:
Originally Posted by ~*Breakdown*~ View Post
mein kollege hat geschrieben:

es sind keine endlosschleifen, da er immer min. ein mal durch eine do-schleife geht und in ihr der wert so geändert wird, dass er eben das abbruchkriterium erfüllt.
Er soll sich meinen Post nochmal durchlesen und erst einmal die Grundlagen lernen. Eine Zuweisung wird zu dem neuen Wert evaluiert, (methode = 1) wird also immer zu 1 evaluiert.
12/04/2011 11:46 vwap#6
Warum float pi = 1;?
"1" ist ein Integer, kein Float :o
12/04/2011 13:12 xNopex#7
Das ist kein C++.
12/04/2011 16:17 .BritainAndy#8
erinnert mich eher an C
12/04/2011 16:58 jacky919#9
Erinnert nicht nur an C, sondern ist C. Ansonsten sollte man die Aus- und Eingabeklassen aus nutzen.
12/04/2011 19:11 MrSm!th#10
Quote:
Originally Posted by Headpuster View Post
Warum float pi = 1;?
"1" ist ein Integer, kein Float :o
das wird automatisch konvertiert :rolleyes: