SDNUOJ 1199.三角形(acos函数的使用)

Time Limit: 1000 MS Memory Limit: 32768 KB

Description
现有一些边长为正整数的三角形的边长的统计数据 ,急需求出每个三角形的最大角。
不过由于技术问题,数据中有可能混杂有不是三角形的错误数据请注意。

Input
至少一组而且可能有很多组的测试数据
每组测试数据为一行,依次是用空格隔开的a b c 三个100以内正整数

Output
每行输出一组测试数据的结果
单位为弧度,保留三位小数。
对于不是三角形的错误数据,请输出一行“Error”(不带引号)

Sample Input
1 2 3
6 6 6

Sample Output
Error
1.047

Hint
理科数学选择填空级别

acos的参数是cos值,返回值是cos值对应角的弧度值,它的头文件是cmath,c++中使用三角函数时,角的表示方法都是弧度制的,传送参数和接受参数时要注意。

下面是代码:

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int maxm(int a,int b)
{
	return a>b?a:b;
}
int minm(int a,int b)
{
	return a<b?a:b;
}
int main()
{
	int a,b,c;
	int dmax,dmin,dmi;
	double ans;
	while(cin>>a>>b>>c)
	{
		if(a+b>c&&a+c>b&&b+c>a)
		{
			dmax=maxm(a,maxm(b,c));
			dmin=minm(a,maxm(b,c));
			if(dmax==a&&dmin==b||dmin==a&&dmax==b)
			{
				dmi=c;
			}
			else if(dmax==a&&dmin==c||dmin==a&&dmax==c)
			{
				dmi=b;
			}
			else if(dmax==c&&dmin==b||dmin==c&&dmax==b)
			{
				dmi=a;
			}
			ans=acos((dmin*dmin+dmi*dmi-dmax*dmax)/double(2*dmin*dmi));
			printf("%.3lf\n",ans);
		}
		else
		{
			cout<<"Error"<<endl;
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值