Wie kann ich Gleitkommazahlen nach dem Komma beim Ausgeben auf 2 Stellen stutzen?



  • Hallo,
    bin ganz neu hier und auch gerade erst mit dem Programmieren angefangen. Also bitte lacht mich nicht aus! 🙂
    Ich soll ein Programm erstellen das über die Eingabe von einem Radius, das Volumen und die Oberfläche einer Kugel berechnet und ausgibt. Das Problem ist jetzt aber das ich jeder meiner Variablen noch dem array zuweisen soll und die Werte nochmal aus dem Array Anzeigen lassen soll aber mit einer Breite von 8 Zeichen und 2 Dezimalstellen. Weiß jemand wie das geht??? So weit bin ich:

    #include <stdio.h>
    #include <conio.h>
    #define PI 3.14159
    #pragma hdrstop

    //---------------------------------------------------------------------------

    void main(void)
    {
    float r,o,v;
    float array[3];
    printf (" Kugelberechnung");
    printf ("\n\nAchtung: Als Dezimalzeichen wird der Punkt [.] erwartet!!!");
    printf ("\n\nRadius [cm] = ");
    scanf ("%f",&r);

    o=4*PI*r*r;
    v=(4*PI*r*r*r)/3;

    printf ("\n\n\nRadius [cm]: %f",r);
    getch();
    printf ("\n\nOberflaeche [cm^2]: %f",o);
    getch();
    printf ("\n\nVolumen [cm^3]: %f",v);

    getch();

    }



  • printf("%.2f",fVariable);



  • Danke! aber wie geht das mit dem Array???



  • Ganz genauso:
    printf("%8.2f",array[i]);

    (8 Zeichen, davon zwei nach dem Komma)

    Nur am Rande: Wenn du Radius, Oberfläche und Volumen schon als einzelne Variablen hast, wozu benötigst du sie dann nochmal in einem Array?



  • Hallo,
    Bzg. Den Arrays empfehle ich diese Lektion. (Ist zwar ein C++-Tutorial, aber du kannst das hier vermittelte Wissen - bis auf cin, cout, welche du durch scanf() und printf() ersetzt - auch in C verwenden).

    Dann erhälst du ungefähr folgenden Code:

    #include <stdio.h>
    
    int main()
    {
       int array[3], i; // Array mit 3 Elementen anlegen.
       puts("Bitte 3 Werte eingeben:");
       for(i = 0; i < 3; ++i)
           scanf("%d", array + i); /* einlesen. (Beachte, dass hier unter Angabe der Adresse des jeweiligen indizes eingelesen wird. */
    
       /* jetzt steht der zuerst eingegebene Wert in array[0], der als 
          zweites eingegebene in array[1], usw. */
    
       /* Ausgeben der Werte... */
       for(i = 0; i < 3; ++i)
           printf("%.2f", array[i]);
    
       return 0;  
    }
    

    Gruß Caipi



  • @ CStoll Es ist halt ne Übungsaufgabe...


Anmelden zum Antworten