Ich hab jetzt alles in Funktionen aufgeteilt und (hoffentlich) es damit übersichtlicher gemacht
Code:
#include <stdio.h>
#include <stdlib.h>
char response, response2;
float a, a2, b, b2, c, c2, h, p, q;
void secside() {
printf("Andere Seite:");
scanf("%c",&response2);
}
void funcab() {
printf("\na:");
scanf("%f",&a);
printf("\nb:");
scanf("%f",&b);
fflush(stdin);
c2=(a*a + b*b);
c= sqrt(c2);
p=(a*a)/c;
q=c-p;
h=p*q;
printf("\nc:%f\np:%f\nq:%f\nh:%f\n",c,p,q,h);
}
void funcac() {
printf("\na:");
scanf("%f",&a);
printf("\nc:");
scanf("%f",&c);
fflush(stdin);
b2= c*c - a*a;
b= sqrt(b2);
p=(a*a)/c;
q=c-p;
h=p*q;
printf("\nb:%f\np:%f\nq:%f\nh:%f \n",b,p,q,h);
}
void funcbc() {
printf("\nb:");
scanf("%f",&b);
printf("\nc:");
scanf("%f",&c);
fflush(stdin);
a2= c*c - b*b;
a= sqrt(a2);
p=(a*a)/c;
q=c-p;
h=p*q;
printf("\na:%f\np:%f\nq:%f\nh:%f \n",a,p,q,h);
}
void funcah() {
printf("\na:");
scanf("%f",&a);
printf("\nh:");
scanf("%f",&h);
fflush(stdin);
p= sqrt(a*a - h*h);
fflush(stdin);
c= (a*a)/p;
fflush(stdin);
q=c-p;
fflush(stdin);
b= sqrt(c*c - a*a);
printf("\nb:%f\np:%f\nq:%f\nc:%f \n",b,p,q,c);
fflush(stdin);
}
void funcbh() {
printf("\nb:");
scanf("%f",&b);
printf("\nh:");
scanf("%f",&h);
fflush(stdin);
q= sqrt(b*b - h*h);
fflush(stdin);
c= (b*b)/q;
fflush(stdin);
p=c-q;
fflush(stdin);
a= sqrt(c*c - b*b);
printf("\na:%f\np:%f\nq:%f\nc:%f \n",a,p,q,c);
}
void funcch() {
printf("\nc:");
scanf("%f",&c);
printf("\nh:");
scanf("%f",&h);
fflush(stdin);
q= c-(h/q);
fflush(stdin);
p= c-q;
fflush(stdin);
a= sqrt(c*p);
fflush(stdin);
b= sqrt(c*c - a*a);
printf("\nb:%f\np:%f\nq:%f\na:%f \n",b,p,q,a);
}
int main(int argc, char *argv[])
{
printf("Dreiecksberechner ;) Ich rechne fuer sie die Seiten im rechtwinkligen Dreieck aus ^-^\nNote: a^2=c*p\n\n\n");
printf("Welche zwei Seiten wissen sie?\n");
printf("Erste Seite:");
scanf("%c",&response);
switch(response)
{
case 'a' : secside();
scanf("%c",&response2);
switch(response2)
{
case 'b' :funcab();
break;
case 'c' :funcac();
break;
case 'h' :funcah();
break;
}
break;
case 'b' : secside();
scanf("%c",&response2);
switch(response2)
{
case 'a' :funcab();
break;
case 'c' :funcbc();
break;
case 'h' :funcbh();
break;
}
break;
case 'c' : secside();
scanf("%c",&response2);
switch(response2)
{
case 'b' :funcbc();
break;
case 'a' :funcac();
break;
case 'h' :funcch();
break;
}
break;
case 'h' : secside();
scanf("%c",&response2);
switch(response2)
{
case 'a' :funcah();
break;
case 'b' :funcbh();
break;
case 'c' :funcch();
break;
}
break;
}
system("PAUSE");
return 0;
}
Jetzt weiß ich allerdings, wo der Fehler die ganze Zeit liegt, an den Formel.
Danke für deine Hilfe, jetzt weiß ich es besser^^