Brauche dringend Hilfe für "c"

Diskutiere mit über: Brauche dringend Hilfe für "c" im Mac OS X Entwickler, Programmierer Forum

  1. Mephisto_

    Mephisto_ Thread Starter MacUser Mitglied

    Beiträge:
    726
    Zustimmungen:
    12
    Registriert seit:
    02.11.2006
    Folgendes Problem: Das Programm soll mir die Oberfläche und das Volumen von einen Kreis berechnen. Aber leider berechnet es mir nur das Volumen.

    Hier der Quelltext:

    main.c:
    #include <stdio.h>

    #include <oberK.h> /*Berechnung der Oberflaeche*/
    #include <volumenK.h> /*Berechnung des Volumens*/

    int main()
    {
    /*Konstanten bestimmen*/
    float durchK;

    /*Durchmesser abfragen*/
    printf ("Bitte geben Sie den Kugeldurchmesser ein: ");
    scanf("%f",&durchK);

    /*Ergebnisse ausgeben*/
    printf ("Das Volumen der Kugel betraegt %f m3 und die Oberflaeche %f m2",berVolumenK(durchK),berOberK(durchK));

    return 0;
    }

    volumenK.c:
    #include <stdio.h>
    #include <volumenK.h>

    #define PI 3.14159
    #define bruch 0.16667

    float berVolumenK(float durchK)
    {
    float volumenK;

    volumenK = bruch * PI * durchK * durchK * durchK;

    return volumenK;
    }

    oberK.c:
    #include <stdio.h>
    #include <oberK.h>

    #define PI 3.14159

    float berOberK(float durchK)
    {
    float oberK; //float für ergebnis mit nachkomma

    oberK = PI * durchK * durchK;

    return oberK; //das ergebnis zurück geben!
    }

    Bitte helft mir. Bin schon am verzweifeln.
     
  2. Jools

    Jools MacUser Mitglied

    Beiträge:
    3.015
    Zustimmungen:
    46
    Registriert seit:
    27.11.2005
    Wozu erstellst du eigene Headerdateien, es reicht doch die Funktionen in der Main.c zu definieren.

    Variante ohne eigenen Header:

    Code:
    #include <stdio.h>
    #include <math.h>
    
    #define bruch 0.16667
    
    float berOberK(float durchK)
    {
    float oberK; //float für ergebnis mit nachkomma
    
    oberK = M_PI * durchK * durchK;
    
    return oberK; //das ergebnis zurück geben!
    }
    
    
    float berVolumenK(float durchK)
    {
    float volumenK;
    
    volumenK = bruch * M_PI * durchK * durchK * durchK;
    
    return volumenK;
    }
    
    int main()
    {
    
    float durchK;
    
    printf ("Bitte geben Sie den Kugeldurchmesser ein: ");
    scanf("%f",&durchK);
    
    printf ("Das Volumen der Kugel betraegt %f m3 und die Oberflaeche %f m2",berVolumenK(durchK),berOberK(durchK) );
    
    return 0;
    }
    
    Variante mit eigenen Header:

    Code:
    /* kugel.h */
    #define bruch 0.16667
    
    float berOberK(float durchK)
    {
    float oberK; //float für ergebnis mit nachkomma
    
    oberK = M_PI * durchK * durchK;
    
    return oberK; //das ergebnis zurück geben!
    }
    
    
    float berVolumenK(float durchK)
    {
    float volumenK;
    
    volumenK = bruch * M_PI * durchK * durchK * durchK;
    
    return volumenK;
    }
    Code:
    #include <stdio.h>
    #include <math.h>
    #include "kugel.h"
    
    
    int main()
    {
    
    float durchK;
    
    printf ("Bitte geben Sie den Kugeldurchmesser ein: ");
    scanf("%f",&durchK);
    
    
    
    printf ("Das Volumen der Kugel betraegt %f m3 und die Oberflaeche %f m2",berVolumenK(durchK),berOberK(durchK) );
    
    return 0;
    }
    
     
    Zuletzt bearbeitet: 04.12.2006
  3. hoppelmoppel

    hoppelmoppel MacUser Mitglied

    Beiträge:
    518
    Zustimmungen:
    2
    Registriert seit:
    12.04.2006
    Wenn du schon eine Header Datei machen möchtest dann brauchste für diesen Kontext nur eine. Hat e alles mit der Kugel zu tun.

    Ach ja noch ne Anmerkung zu jools .. Was hat es für einen Grund das zu machen?

    float berVolumenK(float durchK);
    float berOberK(float durchK);

    Da du e schon de Funktionen vor der main implementiert hast, sollte de main de Funktionen e kennen.

    Und noch ne Frage zu Mephisto ... Hat der Compiler keine Meldung gemacht, dass er die Header Dateien oder so nicht gefunden hat?

    Lokale Header-Dateien, also im gleichen Verzeichnis, inkludiert man ja so: #include "kugel.h".

    Und noch ne Kleinigkeit, PI wäre eigentlich in der math.h als M_PI genau definiert.
     
    Zuletzt bearbeitet: 04.12.2006
  4. Jools

    Jools MacUser Mitglied

    Beiträge:
    3.015
    Zustimmungen:
    46
    Registriert seit:
    27.11.2005
    gar keinen :D, der Aufruf in der printf-Anweisung reicht natürlich aus.
     
  5. hoppelmoppel

    hoppelmoppel MacUser Mitglied

    Beiträge:
    518
    Zustimmungen:
    2
    Registriert seit:
    12.04.2006
    Wusste nicht mal dass der Compiler da keine Fehlermeldung spuckt. Ist ja eigentlich eine Redeklaration .. ;)
     
  6. Mephisto_

    Mephisto_ Thread Starter MacUser Mitglied

    Beiträge:
    726
    Zustimmungen:
    12
    Registriert seit:
    02.11.2006
    Erstmal vielen dank für die vielen Antworten.

    Leider müssen die Funktionen extern und in ne eigene Datei, sprich 2 externe. Eigentlich müsste meine Funktion doch stimmen? Was hab ich da falsch gemacht?
     
  7. Mephisto_

    Mephisto_ Thread Starter MacUser Mitglied

    Beiträge:
    726
    Zustimmungen:
    12
    Registriert seit:
    02.11.2006
    Das ist übrigens das Ergebnis warum ich mir Gedanken mache:

    Bitte geben Sie den Kugeldurchmesser ein: 2
    Das Volumen der Kugel betraegt 4.188870 m3 und die Oberflaeche 0.000000 m2
    Übung 2 c has exited with status 0.
     
  8. hoppelmoppel

    hoppelmoppel MacUser Mitglied

    Beiträge:
    518
    Zustimmungen:
    2
    Registriert seit:
    12.04.2006
    stell mal den ganzen source in nem packet zur verfügung sammt den header files. Und dann sag mal wie oder mit was du das kompiliert hast. Bis jetzt ist mir nur der, denk ich, fehlerhafte include aufgefallen.
     
  9. Mephisto_

    Mephisto_ Thread Starter MacUser Mitglied

    Beiträge:
    726
    Zustimmungen:
    12
    Registriert seit:
    02.11.2006
    Benutze diee neueste Version von XCode

    Code:
    /*main.c*
    
    #include <stdio.h>
    
    #include "oberK.h" /*Berechnung der Oberflaeche*/
    #include "volumenK.h"  /*Berechnung des Volumens*/
    
    int main()
    {
                            /*Konstanten bestimmen*/
        float durchK;
        
                            /*Durchmesser abfragen*/
        printf ("Bitte geben Sie den Kugeldurchmesser ein: ");
        scanf("%f",&durchK);
        
                            /*Ergebnisse ausgeben*/
        printf ("Das Volumen der Kugel betraegt %f m3 und die Oberflaeche %f m2",berVolumenK(durchK),berOberK(durchK));
        
        return 0;
    }
    
    /*oberK.c*/
    
    #include <stdio.h>
    #include <oberK.h>
    
    #define PI 3.14159
    
    float berOberK(float durchK)
    {
        float oberK;    //float für ergebnis mit nachkomma
        
        oberK = PI * durchK * durchK;
        
        return oberK;    //das ergebnis zurück geben!
    }
    
    /*oberK.h*/
    
    float berOberK(float d);
    
    /*volumenK.c*/
    
    #include <stdio.h>
    #include <volumenK.h>
    
    #define PI 3.14159
    #define bruch 0.16667
    
    float berVolumenK(float durchK)
    {
        float volumenK;
        
        volumenK = bruch * PI * durchK * durchK * durchK;
    
        return volumenK;
    }
    
    /*volumenK.h*/
    
    float berVolumenK(float durchK);
    
     
  10. hoppelmoppel

    hoppelmoppel MacUser Mitglied

    Beiträge:
    518
    Zustimmungen:
    2
    Registriert seit:
    12.04.2006
    Tja kann dir schon sagen was an dem kopierten Source nicht stimmt ... Schau dir mal die aller erste Zeile genau an. Wenns dann noch immer nicht geht dann gugg ich noch genauer rein ;)
     
Die Seite wird geladen...
Ähnliche Themen - Brauche dringend Hilfe Forum Datum
Brauche Hilfe bei Eclipse c+ c++ Mac OS X Entwickler, Programmierer 10.02.2014
Ich brauche Hilfe bei Core Data Bindings Mac OS X Entwickler, Programmierer 14.04.2013
Ich brauche XCode 2.4.1 Mac OS X Entwickler, Programmierer 08.11.2012
Reges und Zeilenumbruch- Brauche Hilfe Mac OS X Entwickler, Programmierer 29.05.2012
Brauche Hilfe zu Referat-Thema Mac OS X Entwickler, Programmierer 16.11.2011

Diese Seite empfehlen

Benutzerdefinierte Suche