到目前为止,这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void pitagoras(float l1, float h);
void angulo(float l1, float l2);
int main() {
float lado1, hipotenusa;
printf("sea el triangulo del tipo ABC siendo C la hipotenusa con angulo opuesto c=90\n y el angulo b opuesto al lado 1");
printf("ponga la hipotenusa:\n");
scanf("%f", &hipotenusa);
printf("ponga el lado 1:\n");
scanf("%f", &lado1);
pitagoras(lado1, hipotenusa);
angulo(lado1, lado2);
return 0;
}
void pitagoras(float l1, float h) {
if(l1 >= h) {
printf("error, no es un triangulo rectangulo");
}
else {
float l2;
l2= sqrt(h*h - l1*l1);
printf("el lado 2 es:%f", l2);
}
}
void angulo(float l1, float l2) {
float angulob, anguloa;
angulob= atan(l1 / l2);
anguloa = 180 - (angulob + 90);
printf("los angulos a y b son:%f, %f", angulob, anguloa);
}
出于某种原因,无论我使用哪个号码,我都会在l2
中获得1分。我怎么解决这个问题?
答案 0 :(得分:1)
http://www.cplusplus.com/reference/cmath/atan/
atan需要弧度
http://www.mathinary.com/degrees_radians.jsp
弧度=度* PI / 180