Berechnung der Fläche und Umfang zweier Kreise und berechnen der Oberflache und Volumen zweier Kugeln wobei nur gerundete werte rauskommen und ich brauche , Werte.



  • Hi Pascal mein Name ich versuche ein Programm zu schreiben welches von 2 kreisradien die Fläche und den Umpfang und von 2 Kugelradien die Oberfläche und Volumen berrechnet. Bekomme nur ganze Zahlen raus brauche die ergebnisse aber als ungerundet.
    //
    #include <iostream>
    #include <cmath>
    using namespace std;

    int main()
    {
    int a1, a2; //Kreis
    int b1, b2; //Kugel
    int sum1, sum2; //Fläche 1&2
    int sum3, sum4; //Umfang 1&2
    int sum5, sum6; //Oberfläche 1&2
    int sum7, sum8; //Volumen 1&2
    int pi;
    cout << "Bitte geben Sie den Radius des ersten Kreises ein:";
    cin >> a1;
    cout << "Bitte geben Sie den Radius des zweiten Kreises ein:";
    cin >> a2;
    cout << "Bitte geben Sie den Radius der ersten Kugel ein:";
    cin >> b1;
    cout << "Bitte geben Sie den Radius der zweiten Kugel ein:";
    cin >> b2;

    pi = 3.14159265358979323846;
    sum1 = pi * (pow(a1, 2));
    sum2 = pi * (pow(a2, 2));
    sum3 = 2 * pi * a1;
    sum4 = 2 * pi * a2;
    sum5 = pi * 4 * (pow(b1, 2));
    sum6 = pi * 4 * (pow(b2, 2));
    sum7 = (4 / 3) * pi * (pow(b1, 3));
    sum8 = (4 / 3) * pi * (pow(b2, 3));
    
    cout << "Die Flaeche des 1. Kreises betraegt : " << sum1 << endl;
    cout << "Die Flaeche des 2. Kreises betraegt : " << sum2 << endl;
    cout << "Der Umfang des 1. Kreises betraegt : " << sum3 << endl;
    cout << "Der Umfang des 2. Kreises betraegt : " << sum4 << endl;
    cout << "Die Oberflaeche der 1. Kugel betraegt : " << sum5 << endl;
    cout << "Die Oberflaeche der 2. Kugel betraegt : " << sum6 << endl;
    cout << "Das Volumen der 1. Kugel betraegt : " << sum7 << endl;
    cout << "Das Volumen der 2. Kugel betraegt : " << sum8 << endl;
    
    if (a1 > a2)
    	cout << "Kreis1 ist der groessere Kreis" << endl;
    else
    	cout << "Kreis2 ist der groessere Kreis" << endl;
    if (b1 > b2)
    	cout << "Kugel1 ist die groessere Kugel." << endl;
    else
    	cout << "Kugel1 ist die groessere Kugel." << endl;
    
    return 0;
    

    }



  • Das liegt an dem von dir verwendeten Datentyp int. Du möchtest eine Fließkommazahl, schau dir daher mal den Rückgabetyp von pow an.
    s.a. Fundamental types



  • Du benutzt int als Datentyp. Int kennt nur ganze Zahlen. Kennst du vielleicht auch noch einen anderen Datentyp?

    Ansonsten noch der generelle Hinweis, dass du die Initialisierung, wenn möglich, direkt zusammen mit der Variablendefinition machen solltest.
    Also nicht:

    int pi;
    // anderer Code (oder auch nichts)
    // in diesem Bereich ist pi undefiniert - du darfst hier nicht lesend auf pi zugreifen
    // pi klingt aber nach einem festen Wert - das ist fehleranfällig!
    pi = irgendwas;
    

    sondern:

    int pi = 3.141;
    

    Allerdings ist hier, wie gesagt, int nicht der korrekte Typ, denn int kennt nur ganze Zahlen. Außerdem könntest du pi als const deklarieren.



  • Vielen dank für die Antwotren hat mir sehr weitergeholfen 😁



  • @Pascal Und schau dir auch mal dein sum7 an:

    sum7 = (4 / 3) * pi * (pow(b1, 3));

    (4 / 3) dividiert die Ganzzahl 4 durch die Ganzzahl 3. Es kommt eine Ganzzahl heraus, nämlich 1. Bei dir soll aber vermutlich nicht 1, sondern 1.333... herauskommen. Dazu muss mindestens eine der Zahlen bereits eine Fließkommazahl sein. Also statt (4 / 3) schreibst du (4.0 / 3) oder (4 / 3.0) oder (4.0 / 3.0) oder gar (4. / 3) (d.h. der Punkt allein reicht schon aus).


  • Mod

    Oder 4 * pi / 3....


Anmelden zum Antworten