APCS程式檢測 -實作題1051029 第1題 三角形辨別

第一步:泡沫排序法
最簡單的排序法,考試也很常出,建議是背起來
//泡沫排序法
void BubbleSort(int* pArray, int nNum)
{
int nTemp;
for (int i = 0; i < (nNum - 1); i++)
{
for (int j = 0; j < (nNum - 1 - i); j++)
{
if (pArray[j] > pArray[j + 1])
{
nTemp = pArray[j];
pArray[j] = pArray[j + 1];
pArray[j + 1] = nTemp;
}
}
}
}
第二步:判斷三角形邊長
這就照題目做就可以了
void CheckTriangle(int a, int b, int c)
{
if (a + b <= c)
{
cout << "No" << endl;
return;
}
int a2 = a * a;
int b2 = b * b;
int c2 = c * c;
if ((a2 + b2) == c2)
cout << "Right" << endl;
else if ((a2 + b2) < c2)
cout << "Obtuse" << endl;
else if ((a2 + b2) > c2)
cout << "Acute" << endl;
}
完整程式碼
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
void BubbleSort(int* pArray, int nNum);
void CheckTriangle(int a, int b, int c);
int main()
{
//處理輸入資料
string input;
getline(cin, input);
stringstream delim(input);
string pch;
int a;
getline(delim, pch, ' ');
a = stoi(pch);
int b;
getline(delim, pch, ' ');
b = stoi(pch);
int c;
getline(delim, pch, ' ');
c = stoi(pch);
//將資料放入陣列
const int NUM = 3;
int nSide[NUM];
nSide[0] = a;
nSide[1] = b;
nSide[2] = c;
//泡沫排序法
BubbleSort(nSide, NUM);
//印出排序結果
cout << nSide[0] << " " <<nSide[1] << " " <<nSide[2] << endl;
//檢查三角形並印出結果
CheckTriangle(nSide[0], nSide[1], nSide[2]);
system("pause");
return 0;
}
void BubbleSort(int* pArray, int nNum)
{
int nTemp;
for (int i = 0; i < (nNum - 1); i++)
{
for (int j = 0; j < (nNum - 1 - i); j++)
{
if (pArray[j] > pArray[j + 1])
{
nTemp = pArray[j];
pArray[j] = pArray[j + 1];
pArray[j + 1] = nTemp;
}
}
}
}
void CheckTriangle(int a, int b, int c)
{
if (a + b <= c)
{
cout << "No" << endl;
return;
}
int a2 = a * a;
int b2 = b * b;
int c2 = c * c;
if ((a2 + b2) == c2)
cout << "Right" << endl;
else if ((a2 + b2) < c2)
cout << "Obtuse" << endl;
else if ((a2 + b2) > c2)
cout << "Acute" << endl;
}

