程序有错误,检查不出来
[code=C/C++][
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#define Pi 3.14159265
//已知三角形两边及一边之对角解三角形函数
void fun3(void)
{
double a=0.0, b=0.0, c=0.0;
double b1=0.0, b2=0.0;
double A=0.0, B=0.0, C=0.0;
double A1=0.0, A2=0.0, B1=0.0, B2=0.0;
printf("注意:1.已知条件假定为a,c及c之对角∠C;\n");
printf(" 2.输入角度及输出角度均为角度制。\n");
printf("\n按回车键开始:");
getchar();
printf("\n");
printf("a="); scanf("%lf",&a);
printf("c="); scanf("%lf",&c);
printf("∠C="); scanf("%lf",&C);
A=asin(a*sin(C)/c);
A=A*180/Pi;
if(A==90)
{
B=90-C*180/Pi;
b=sqrt(a*a-c*c); //利用勾股定理
printf("∠A=%f° ∠B=%f° b=%f",A,B,b);
}
else
{
A1=A;
A2=A+90; //A值存在大于和小于90度两种情况
A1=A1*Pi/180;
A2=A2*Pi/180; //A1,A2化为弧度,方便后面计算
B1=Pi-A1-C;
B2=Pi-A2-C; //求出∠B两种情况下的值,暂用弧度表示
b1=c*sin(B1)/sin(C);
b2=c*sin(B2)/sin(C); //求出两种情况下边长b的值
A1=A1*180/Pi;
A2=A2*180/Pi;
B1=B1*180/Pi;
B2=B2*180/Pi; //把两种情况下∠A,∠B值化为角度,作为最终显示
printf("2组解\n\n");
printf("解1:\n");
printf(" ∠A1=%f° ∠B1=%f° b1=%f",A1,B1,b1);
printf("\n");
printf("解2:\n");
printf(" ∠A2=%f° ∠B2=%f° b2=%f",A2,B2,b2);
}
}
int main(void)
{
fun3();
printf("\n");
system( "pause" );
return 0;
}
]