Frage zu Punkten einlesen und über Header Funktionen bedienen



  • Ich möchte gerne die Punkte von meiner main Funktion speichern und dann später in der struct.c mit einer Funktion ausrechnen. Wie bekomme ich diese Punkte (Main.c: Zeile 21, 23, 25, 28, 30 und 32) jetzt in die "float distance(struct point pt1, struct point pt2)" Funktion von der Struct.c? In Zeile 35 möchte ich dann eben dann das Ergebnis von der Funktion ausgeben. Wie sollte ich vorgehen? So funktioniert es nicht.

    Main.c:

    #include <stdio.h>
    #include <stdlib.h>
    #include "struct.h"
    
    int main(void)
    {
        /* Definition des Datentyps Punkt */
        struct point
        {
            float x;
            float y;
            float z;
        };
        struct point pt1 = {0, 0, 0};
        struct point pt2;
        struct point pt3;
    
        /* Eingabeaufforderung der beiden Punkte und Ablegen in den entspr.
           Datentypen */
        printf("Entfernung berechnen\nBitte x-Koordinate eingeben: %f\n");
        scanf(" %f", &pt1.x);
        printf("Bitte y-Koordinate eingeben: %f\n");
        scanf(" %f", &pt1.y);
        printf("Bitte z-Koordinate eingeben: %f\n\n");
        scanf(" %f", &pt1.z);
    
        printf("Bitte x-Koordinate eingeben: %f\n");
        scanf(" %f", &pt2.x);
        printf("Bitte y-Koordinate eingeben: %f\n");
        scanf(" %f", &pt2.y);
        printf("Bitte z-Koordinate eingeben: %f\n\n");
        scanf(" %f", &pt2.z);
    
        printf(" Die Entfernung von Punkt1(%f,%f,%f) zu Punkt2(%f,%f,%f) beträgt: %f", pt1.x, pt1.y, pt1.z, pt2.x, pt2.y, pt2.z, (distance (struct point pt1, struct point pt2));
    
        system("PAUSE");
        return 0;
    }
    

    struct.c (Funktion)

    #include <math.h>
    #include "struct.h"
    
    float distance(struct point pt1, struct point pt2)
    {
        float dx, dy dz;
        dx = pt1.x - pt2.x;
        dy = pt1.y - pt2.y;
        dz = pt1.z - pt2.z;
        return double sqrt( dx*dx + dy*dy + dz*dz );
    

    Header:

    float distance(struct point pt1, struct point pt2);
    float area(struct point pt1, struct point pt2, struct point pt3);
    



Anmelden zum Antworten