你的代码对于一个等边三角形会同时输出等边和等腰,没有加else导致的。
by boringctas @ 2024-03-13 13:58:19
@[Bubbles2023](/user/982176)
by boringctas @ 2024-03-13 13:58:34
但是这个不是重点,重点是直角,钝角,锐角三角形你的代码会统一输出为锐角三角形。
by boringctas @ 2024-03-13 14:00:36
@[boringctas](/user/559037) 谢谢,那应该怎么修改呢? ||但是这个不是重点,重点是直角,钝角,锐角三角形你的代码会统一输出为锐角三角形。
by Bubbles2023 @ 2024-03-13 16:32:29
@[Bubbles2023](/user/982176) 没看清题目,第一个回复是错的,代码修改后如下:
```cpp
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int n[5];
int main(){
cin>>a>>b>>c;
n[1]=a,n[2]=b,n[3]=c;
sort(n+1,n+4);
if(!(n[1]+n[2]<=n[3]))
{
if((n[1]*n[1]+n[2]*n[2])==n[3]*n[3]) cout<<"Right triangle\n"; //直角
else if((n[1]*n[1]+n[2]*n[2])>n[3]*n[3]) cout<<"Acute triangle\n"; //锐角
else if((n[1]*n[1]+n[2]*n[2])<n[3]*n[3]) cout<<"Obtuse triangle\n"; //钝角
if(a==b||b==c||a==c) cout<<"Isosceles triangle\n"; //等腰
if(a==b&&b==c) cout<<"Equilateral triangle\n"; //等边
}
else cout<<"Not triangle\n"; //无法构成
return 0;
}
```
by boringctas @ 2024-03-13 16:39:41
```
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,c;
cin>>a>>b>>c;
if(a>b) swap(a,b);
if(b>c) swap(b,c);
if(a>c) swap(a,c);
if(a+b<=c) cout<<"Not triangle";
else
{
if(a*a+b*b==c*c) cout<<"Right triangle"<<"\n";
if(a*a+b*b>c*c) cout<<"Acute triangle"<<"\n";
if(a*a+b*b<c*c) cout<<"Obtuse triangle"<<"\n";
if(a==b || b==c || a==c) cout<<"Isosceles triangle"<<"\n";
if(a==b && b==c ) cout<<"Equilateral triangle"<<"\n";
}
return 0;
}
```
by wwwee @ 2024-03-14 12:12:47
这是的\( ̄︶ ̄*\))
by wwwee @ 2024-03-14 12:13:24
@[boringctas](/user/559037) 嗯呐,好,谢谢你~Thanks♪(・ω・)ノ
by Bubbles2023 @ 2024-03-14 12:35:27
@[wwwee](/user/1046423) 嗯呐,好,谢谢你~Thanks♪(・ω・)ノ
by Bubbles2023 @ 2024-03-14 12:35:37
已解决,谢谢boringctas&wwwee
by Bubbles2023 @ 2024-03-14 12:36:22