0048-三角形的判断
生活随笔
收集整理的這篇文章主要介紹了
0048-三角形的判断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
| 三角形的判斷 |
| 難度級別:A; 運行時間限制:1000ms; 運行空間限制:51200KB; 代碼長度限制:2000000B |
| 試題描述 |
| 輸入三個正整數 a、b 和 c,分別表示三條線段的長度,判斷其是否能夠構成三角形,如果能夠構成三角形,尋找該三角形的特征,特征有:①等邊三角形 ②銳角三角形 ③等腰銳角三角形 ④鈍角三角形 ⑤等腰鈍角三角形 ⑥直角三角形 ⑦等腰直角三角形。當然是等邊三角形也是銳角三角形,也是等腰三角形,這里只要求輸出最貼切的一個特征,也就是說是等邊三角形,你就沒必要輸出等腰和銳角的特征了。 |
| 輸入 |
| 一行,包括三個不超過?100000?的正整數,兩兩之間用一個空格分隔。 |
| 輸出 |
| 如果能夠構成三角形,就輸出該三角形的特征,如果不能,就輸出無法構成三角形。 |
| 輸入示例 |
| 5?12?13 |
| 輸出示例 |
| 直角三角形 |
分析
? ? 感覺到題目突然升級了有沒有?沒錯!是升級了。不僅情況變多了,你需要了解的也變多了。
? ? 注意事項:
? ? ? ? 1.先從小到大排序,有利于判斷特征。
? ? ? ? 2.對于每種三角形的特征要比清楚。
? ? ? ? 3.輸出最貼切的特征。
? ? 另外,為了有利于排序,在此介紹一個系統的交換函數,可以有效縮短代碼長度,并且省去了對用來轉換所需變量的定義。
? ? 用法:
swap(變量1,變量2);? ? 但最后想明白還是挺簡單的。
代碼
#include<bits/stdc++.h> using namespace std; int a,b,c; int main() {scanf("%d%d%d",&a,&b,&c);if(a>b) swap(a,b);//將邊的長短從小到大排,有利于后期判斷。if(a>c) swap(a,c);if(b>c) swap(b,c);if(a+b<=c) printf("無法構成");//分別判斷各種情況。else if(a==b&&a==c&&b==c) printf("等邊");//為了輸出最貼切的名稱,先把限制多的名稱放在前面,并使用else if。else if(a==b&&a*a+b*b==c*c) printf("等腰直角");else if((a==b||b==c||a==c)&&a*a+b*b<c*c) printf("等腰鈍角");//注意判斷順序,分別判斷等腰和什么角。else if((a==b||b==c||a==c)&&a*a+b*b>c*c) printf("等腰銳角");else if(a*a+b*b==c*c) printf("直角");else if(a*a+b*b<c*c) printf("鈍角");else if(a*a+b*b>c*c) printf("銳角");printf("三角形");//統一輸出很整潔,省長度~return 0; }轉載于:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/9550200.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的0048-三角形的判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 检测客户pc电脑端VC++环境并安装
- 下一篇: Oracle 数据文件迁移