C++ Bug/Problem?

... komplette Frage anzeigen

4 Antworten

Wie die anderen hier sagen: ohne Code bekommst du maximal Mutmaßungen und Spekulatione.

Falls du das willst, hier ist meine Spekulation:
Ein Teil des Codes wird bedingt durchlaufen (eventuell auch durch Optimierungen, die der Compiler vornimmt.)
Die Ausgabe ist so programmiert, dass eine Abarbeitung dieses Codes erzwungen wird.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich habe mir deine Frage durchgelesen und keine Ahnung, was du willst und was genau das Problem ist. Vielleicht müsstest du das noch mal genauer erklären.

Selbst wenn ich das wüsste -- ohne deinen Code zu kennen wird dir wohl kaum jemand helfen können. Und wenn du den noch postest, mach das doch bitte mit der Code-Funktion hier :-)

Antwort bewerten Vielen Dank für Deine Bewertung

Hat sich geklärt...hab vergessen h am Anfang auf 0 zu setzen! Danke für eure Antworten ;D

Antwort bewerten Vielen Dank für Deine Bewertung
#include <iostream>
#include <math.h>

using namespace std;

int pi(double it)

{
     double b=2*it, s=0, hv, h;
     for (double i = 1; i <= it; i++) {
        hv=h;
        h=sqrt(i*(b-i));
        cout << hv<<endl<<h<<endl;
        hv=h-hv;
   s+=sqrt(hv*hv + 1);
}

    return s;

}

int main()
{
    double it;
    cin >> it;
    double ergebnis= pi(it);
    cout << "PI ist:" << ergebnis/(it/2);
    return 0;
}

Hier der C++ Code

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von karajan9
26.08.2016, 20:02

Magst du dann gerade noch sagen, was das Problem ist, als was du gerne hättest und was stattdessen passiert?

Einen Fehler, den ich sponant sehe ist, dass du hv und h benutzt, ohne sie vorher zu initialisieren, also = 0 zu setzen. Wenn du Glück hast geht das gut, muss es aber nicht.

1
Kommentar von ElClown
26.08.2016, 20:04

Das wars problem

1
Kommentar von TeeTier
27.08.2016, 03:45

Die Funktion liefert "int" statt "double" zurück!

0

Was möchtest Du wissen?