Kurzer Quellcode - Wo sind meine Fehler?



  • hab hier bischen quellcode kenn mich da echt nicht so gut aus mit dem Kram und würde gerne wissen was ich für fehler in der Syntax oder Logik gemacht hab..wenn die fehler zu kompliziert zu erklären sind würde ich mich auch über einen korregierten quellcode freuen. danke!

    #include <stdio.h>
    #include <math.h>

    double vwuerfel(int a, int v1)
    {
    v1=a*a*a;
    return v1;
    }

    double vkugel(int r, float v2, float pi)
    {
    v2=(4/3)*(r*r*r)*pi;
    printf("Das Ergebnis betraegt: %d", v2);
    return v2;
    }

    wuerfel2kugel(int c)
    {
    do
    {
    r=0;

    }
    while();

    return=0;
    }

    int main()
    {

    int a=5, r=10, c=15;
    float pi = 3.14159265;
    printf("Dieses Programm dient zum Ausfuehren von verschiedenen Rechnungen. \n");
    int vwuerfel(int a, int v1);

    return 0;
    }

    Der ursprüngliche Sinn des Programms war :
    2 simple Funktionen sollen mit einem vorher festgelegten, übergebenen Wert ein Ergebnis für eine Kugel und ein Würfel erreichnen,

    in einer While schleife die sich i nder Funktion "wuerfel2kugel" befindet, soll dann "iterativ" berechnet werden, wie groß der radius der kugel sein müsste, damit sie genauso groß ist wie der Würfel..

    die while schleife hab ich ebenfalsl nich gemacht und das program hat recht viele fehler.. wenn jemand hilfsbereit ist und vielleicht sogar spaß dran hat mir zu helfen, der kann die gerne tun, danke im Vorraus.



  • 1. sagt dein Titel nichts aus.
    2. benutzt man hier Code-Tags um den Code leserlich zu machen
    3. rückt man den Code ein. Grund: siehe 2.
    4. machen wir hier nicht die Hausaufgaben für dich



  • Bitte editier deinen Beitrag und benutze Code-Tags. Dazu musst du deinen Code mit

    und [/cpp ] (ohne Leerzeichen) umschließen. Dann kannst du auch vernünftig einrücken.
    
    So:
    
    [cpp]
    int main() {
      int i=0;
      return 0;
    }
    

    Schöner, oder nicht? 🙂



  • ch1ller schrieb:

    int main()
    {
    ...
    int vwuerfel(int a, int v1);
    ...
    }

    beim funktionsaufruf darf man die typen nicht mehr hinschreiben. einfach die 'int's weglassen:

    int main()
    {
      ...
      vwuerfel (a, v1);
      ...
    }
    

    🙂



  • v1 in vwuerfel hat keinen Typ...



  • Machine schrieb:

    1. sagt dein Titel nichts aus.
    2. benutzt man hier Code-Tags um den Code leserlich zu machen
    3. rückt man den Code ein. Grund: siehe 2.
    4. machen wir hier nicht die Hausaufgaben für dich

    schlechten tag gehabt 🙂 ?
    is zwar nett dass du mich auf so sachen hinweist aber dass muss man nicht gleich nummerieren und emotionslos hinklatschen, geht auch netter.
    und nein es sind keine hausaufgaben ich mache das freiwillig 🙂



  • Ist dir bewusst, was diese Schleife macht?

    do 
    { 
      r=0; 
    } 
    while();
    

    Hier haben wir eine Endlos-Schleife. Daran solltest du also noch arbeiten... 😉

    Editier einen Beitrag, sonst hat kaum einer Lust, dir zu helfen. 🙂



  • ch1ller schrieb:

    schlechten tag gehabt 🙂 ?
    is zwar nett dass du mich auf so sachen hinweist aber dass muss man nicht gleich nummerieren und emotionslos hinklatschen, geht auch netter.

    Das sind aber Sachen, auf die man jemanden in einem Programmierforum nicht hinweisen müssen sollte. Und langsam pi**en mich solche Beiträge wie deiner halt einfach an.
    Das mit dem emotionslos lass ich einfach mal so im Raum stehen..



  • so habe nochmal drüber geschaut und alle fehler beseitigt bis auf ein problem mit der whiule schleife.. die aufgabenstellung lautet dass die funktion herausfinden soll, wie groß der radius der kugel sein muss, damit sie das gleiche volumen wie der wrürfel hat..

    #include <stdio.h>
    #include <math.h>
    
    int vwuerfel(int a, int v1)
    {
     v1=a*a*a;
     return v1;  
    }
    
    double vkugel(int r, float v2, float pi)
    {
     v2=(4/3)*(r*r*r)*pi;      
     return v2;
    }
    
    double wuerfel2kugel(int a, int r, int v1, float v2, float pi)
    {
    v1=a*a*a;
    
    do
    {
      v2=(4/3)*(r*r*r)*pi;
      r++;      
    
    }
    while(v2<v1);
    
    return r;
    }
    //------------------------- Main------------------------
    int main()
    {
    
        int a=5, r=10, c=15, v1, v2;
        char name;
        float pi = 3.14159265;
        printf("Dieses Programm dient zum Ausfuehren von verschiedenen Rechnungen. \n");
        int meinrueckgabewert = vwuerfel(a, v1); 
        printf("Wuerfelvolumen betraegt: %d \n", meinrueckgabewert);
    
        double tollerwert = vkugel(r, v2, pi);
        printf("Kugelvolumen betraegt: %f \n", tollerwert);
    
        double Vergleich = wuerfel2kugel(v1, v2, r, a, pi);
        printf("Der Radius waere bei gleichem Volumen: %d \n", Vergleich);
    
        scanf("%s", name);
        return 0;
    }
    

    bitte um sofortige hilfe von wachen leuten!



  • Mal so quick and dirty:

    #include <stdio.h> 
    #include <math.h> 
    
    int vwuerfel(int a) 
    { 	
    return a*a*a;   
    } 
    
    double vkugel(int r, float pi) 
    { 
      double v2=(4/3)*(r*r*r)*pi; 
    
     return v2; 
    } 
    
    double wuerfel2kugel(int v1, float pi) 
    { 
    double r = 0.01;
    double v2;
    do 
    { 
      v2=(4/3)*(r*r*r)*pi; 
      r+=0.01;       
    
    } 
    while(v2<v1); 
    
    printf("%lf %d\n", v2, v1);
    
    return r; 
    } 
    //------------------------- Main------------------------ 
    int main() 
    { 
    
        int a=5, r=10, c=15, v1, v2; 
        char name; 
        float pi = 3.14159265; 
        printf("Dieses Programm dient zum Ausfuehren von verschiedenen Rechnungen. \n"); 
        v1 = vwuerfel(a); 
        printf("Wuerfelvolumen betraegt: %d \n", v1); 
    
        double tollerwert = vkugel(r, pi); 
        printf("Kugelvolumen betraegt: %f \n", tollerwert); 
    
        double Vergleich = wuerfel2kugel(v1, pi); 
        printf("Der Radius waere bei gleichem Volumen: %lf \n", Vergleich); 
    
        scanf("%s", &name); 
        return 0; 
    }
    

    Mir scheint so als hättest du das Prinzip der Parameterübergabe an Funktionen noch nicht ganz begriffen. Nimm dir 30 Minuten und schlag das nach, dann geht es beim nächsten Mal schon besser 😃



  • ch1ller schrieb:

    die aufgabenstellung lautet dass die funktion herausfinden soll, wie groß der radius der kugel sein muss, damit sie das gleiche volumen wie der wrürfel hat..

    Aufgabenstellung? Ich dachte, du machst das freiwillig...



  • ich kann ja schlecht irgendwas sinnloses programmieren, hinter jedem programm ist eine aufgabe



  • Auch wieder wahr. 😉


Anmelden zum Antworten