#include<stdio.h>int main(){ int a[3]; int i,j,t; for(i=0;i<3;i++) { scanf("%d",&a[i]); } for(i=0;i<2;i++) { for(j=0;j<2-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } if(a[1]+a[0]<=a[2]) { printf("Not triangle\n"); } else { if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2]) printf("Right triangle\n"); else if(a[0]==a[1]&&a[0]==a[2]) printf("Equilateral triangle\n"); else if(a[0]==a[1]||a[2]==a[1]||a[0]==a[2]) printf("Isosceles triangle\n"); else if(a[0]*a[0]+a[1]*a[1]>a[2]*a[2]) printf("Acute triangle\n"); else if(a[0]*a[0]+a[1]*a[1]<a[2]*a[2]) printf("Obtuse triangle\n"); } return 0;}
为什么是部分正确呢,哪里有错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- LYSnowy 2022-02-08 10:56关注
#include <cstdio> #include <algorithm> using namespace std; int a, b, c; int main() { scanf("%d%d%d", &a, &b, &c); int d[4] = {0, a, b, c}; sort(d + 1, d + 4); if(d[1] + d[2] <= d[3]) { printf("Not triangle\n"); return 0; } if(d[1] * d[1] + d[2] * d[2] == d[3] * d[3]) printf("Right triangle\n"); else if(d[1] * d[1] + d[2] * d[2] > d[3] * d[3]) printf("Acute triangle\n"); else if(d[1] * d[1] + d[2] * d[2] < d[3] * d[3]) printf("Obtuse triangle\n"); if(a == b || b == c || a == c) printf("Isosceles triangle\n"); if(a == b && b == c) printf("Equilateral triangle\n"); return 0; }
题目要求如果符合多个的话按照顺序输出,你只能输出一种类别
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
- ¥20 wpf datagrid单元闪烁效果失灵
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了
- ¥15 陆空双模式无人机怎么做
- ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
- ¥15 C#中的编译平台的区别影响
- ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
- ¥15 电脑蓝屏logfilessrtsrttrail问题