输入三角形3边的长度值(均为正整数),判断能否为直角三角形的3个边长。如果可以,则输出yes,否则输出no。
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a < 1 || b <1 || c < 1) {
printf("no\n");
}
a = a * a;
b = b * b;
c = c * c;
if (a + b == c) {
printf("yes\n");
}
if (a + c == b) {
printf("yes\n");
}
if (c + b == a) {
printf("yes\n");
}
printf("no\n");
首先你需要想明白构成直角三角形的条件,然后让思想变成代码就简单了。
上面那个忘记考虑等腰直角三角形了,应该这样
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a < 1 || b <1 || c < 1) {
printf("no\n");
}
a = a * a;
b = b * b;
c = c * c;
if ((a + b == c) || (a + c == b) || (b + c == a) ) {
printf("yes\n");
}
printf("no\n");
#include<stdio.h>
void main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>b){ //令a为最大值
if(a<c){
int i;
i=a;
a=c;
c=i;
}//if
}//if
else {
int j;
j=a;
a=b;
b=j;
if(a<c){
int k;
k=a;
a=c;
c=k;
}//if
}//else
if(a*a==b*b+c*c)
printf("yes\n");
else
printf("no\n");
}
看一下 应该对
嗯嗯,问题已经解决了,谢谢大家
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if ((a + b <= c) || (a + c <= b) || (b + c <= a))
printf("not a triangle\n");
else if ((a*a + b*b == c*c) || (a*a + c*c == b*b) || (b*b + c*c == a*a))
printf("yes\n");
else
printf("no\n");
return 0;
}