Description
给定a, b, c三个整数表示三条边,问这三边能否构成一个直角三角形,如果能,输出直角三角形面积,如果不能,输出-1。
Input
输入包含3个整数a, b, c,表示三条边。
1 ≤ a,b,c ≤ 100,保证三个数全为整数。
Output
如果三边能构成直角三角形,则输出三角形面积(保证面积为整数),否则输出-1。
Sample Input 1
5 12 13
Sample Output 1
30
Sample Input 2
1 2 3
Sample Output 2
-1
#include<stdio.h>
void main()
{
int i,j,a[3],temp;
scanf("%d %d %d",&a[0],&a[1],&a[2]);
for(i=0;i<3;i++)//冒泡排序
for(j=i+1;j<3-i;j++)
{
if(a[i]>a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;}
}
if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2])
printf(a[0]*a[1]*0.5);
else
{printf(-1)}
}
判断两边的平方和是否等于第三边的平方和
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a*a+b*b==c*c)
printf("%.1f",0.5*a*b);
else if(a*a + c*c == b*b)
printf("%.1f",0.5*a*c);
else if(b*b + c*c == a*a)
printf("%.1f",0.5*b*c);
else
printf("-1");
return 0;
}
#include<stdio.h>
int main()
{
float a, b, c;
int sq = 0;
scanf("%f%f%f",&a, &b, &c);
if (a+b>c&&a+c>b&&b+c>a)
{
if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){
printf("是直角三角形!\n");
if(a*a+b*b==c*c){
sq = a*b/2;
}
else if(a*a+c*c==b*b){
sq = a*c/2;
}
else{
sq = b*c/2;
}
printf("直角三角形面积为:%d\n", sq);
}
else
printf("不是直角三角形! -1\n");
}
else
printf("不能构成三角形! -1\n");
return 0;
}