Strecken berechnung im Koordinaten system

fireflyhope

Mitglied
Bin neu in c++, hab versucht ein programm zumachen das mit die mathe hausaufgaben errleichter, ein programm das strecken im koordinatensystem errechnet, aber es funktioniert nicht, kann mir jemand helfen?
Code:
// linearefunc.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include "func.h"
#include "math.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
	float p1x;
	float p1y;
	float p2x;
	float p2y;
	float erge;
	float erge1;
	float a1;
	float a2;
	printf("Bitte P1x eingeben\n");
	sscanf("%f",&p1x) ;
	printf("Bitte P2x eingeben\n");
	sscanf("%f",&p2x) ;
	a1 = p1x - p2x;
	a1 = sqr(a1);
	printf("Bitte P1y eingeben\n");
	sscanf("%f",&p1y) ;
	printf("Bitte P2y eingeben\n");
	sscanf("%f",&p2y) ;
	a2 = p1y - p2y;
	a2 = sqr(a2);
	erge = a1 + a2;
	erge1 = sqrt(erge);
	printf("Von P1 bis P2 sind es %f [LE]\n", erge1);
	wait();
	return 0;
}

in der func.h steht das:
Code:
int wait()
{
	printf("Bitte 'ENTER' druecken um das Fenster zuschliessen \n");
		getchar();
		return 0;
}
int sqr(int teeessst)
{
	teeessst = teeessst * teeessst;
	return teeessst;
}
 
Zuletzt bearbeitet:
jetzt kommt das ergebnis 0.00000000 egal was ich eingebe :/

Code:
// linearefunc.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include "func.h"
#include "math.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
	double p1x;
	double p1y;
	double p2x;
	double p2y;
	double erge;
	double erge1;
	double a1;
	double a2;
	printf("Bitte P1x eingeben\n");
	scanf("%f",&p1x) ;
	printf("Bitte P2x eingeben\n");
	scanf("%f",&p2x) ;
	a1 = p1x - p2x;
	a1 = sqr(a1);
	printf("Bitte P1y eingeben\n");
	scanf("%f",&p1y) ;
	printf("Bitte P2y eingeben\n");
	scanf("%f",&p2y) ;
	a2 = p1y - p2y;
	a2 = sqr(a2);
	erge = a1 + a2;
	erge1 = sqrt(erge);
	printf("Von P1 bis P2 sind es %f [LE]\n", erge1);
	wait();
	return 0;
}
 
Es wäre praktisch wenn dein sqr auch ein Float/double zurückgeben würde und auch in der Parameterliste erwarten würde

Code:
double sqr(double teeessst)
{
	double testt = teeessst * teeessst;
	return test;
}
Ausserdem sollte man keine Funktionen in Headerfiles schreiben sondern dort nur den Prototyp definieren.

Achso und in Zukunft bitte Compilerausgabenmit angeben.
Viel Erfolg.
 
Zuletzt bearbeitet:
soll heissen du schreibst in dein Headerfile (bla.h) nur rein:

double sqr(double test);

und in die passende bla.c dann die vollständige Funktion. Bei Abhängigkeiten (z.B. wenn du die Funktion sqr in einer anderen c-Funktion brauchst, muss dann blos die Headerdatei eingebunden werden (#include) und dann auch nur die Header-Datei vom Compiler gelesen werden (wenn bla.c schon übersetzt wurde). Somit reduziert sich die Kompilezeit. Es gehört zum Stil in C/C++ dass die Implementierungen in die C/Cpp Dateien wandern und die Kompileinformation (der Funktionsprototyp, die Klassendefinition usw.) in die .h Dateien.
 
Zurück