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

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;
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *