题目描述
输入三个整数,判断用这三个整数做边长是否能构成一个直角三角形。
输入格式
输入三个整数。
输出格式
能否构成直角三角形,如能输出:“yes”,若不能,输出:“no”。
数据范围0≤ 所有数字 ≤1000。
Sample Input
6 8 10
Sample Output
yes
思路
用勾股定理判断是否为直角三角形。
直角三角形的条件:
①首先它应该是一个三角形
②其次它的两个直角边的平方和等于斜边的平方和
C语言代码:
#include<stdio.h>
int main()
{
int a[4];
scanf("%d %d %d",&a[0], &a[1], &a[2]);
for(int i = 0; i < 3; ++i)//排序
for(int j = 2; j > i; j--)
if(a[j] < a[i])
{
long long temp = a[j];
a[j] = a[i];
a[i] = temp;
}
if(a[0] == 0)//最短边为0,无法构成三角形
{
printf("no");
return 0;
}
if(a[0] * a[0] + a[1] * a[1] == a[2] * a[2]) printf("yes");//勾股定理
else printf("no");
return 0;
}
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a[3];
memset(a, 0, sizeof(a));
while(cin >> a[0] >> a[1] >> a[2])
{
sort(a, a + 3);
if(a[0] * a[0] + a[1] * a[1] == a[2] * a[2] && a[0] + a[1] > a[2] && a[2] - a[0] < a[1]) cout << "yes" << endl;
else cout << "no" << endl;
memset(a, 0, sizeof(a));
}
return 0;
}
sort()是排序函数,在头文件#include<algorithm>
中。
没有C语言基础的同学们,可以先学习一下C语言语法,我会整理好,后面发出来
我已经写好了,可以去C语言程序设计专栏看第一周的内容。