백준 5073 c++

magicdrill·2024년 3월 19일
0

백준 문제풀이

목록 보기
171/655

백준 5073 c++

#include <iostream>

using namespace std;

int input(int lower, int upper);
void input_arr(int** arr, int row);
void check_triangle(int** arr, int row);

int main(void)
{
	int i;
	int** arr = new int* [100];
	for (i = 0; i < 100; i++)
	{
		arr[i] = new int[3] {};
	}

	input_arr(arr, 100);
	check_triangle(arr, 100);

	for (i = 0; i < 100; i++)
	{
		delete[] arr[i];
	}
	delete[] arr;

	return 0;
}

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void input_arr(int** arr, int row)
{
	int i, j;

	for (i = 0; i < row; i++)
	{
		arr[i][0] = input(0, 1000);
		arr[i][1] = input(0, 1000);
		arr[i][2] = input(0, 1000);
		if (arr[i][0] == 0 && arr[i][1] == 0 && arr[i][2] == 0)
		{
			break;
		}
		else if(arr[i][0] == 0 || arr[i][1] == 0 || arr[i][2] == 0)
		{
			i--;
		}
		else
		{
			;
		}
	}

	return;
}

void check_triangle(int** arr, int row)
{
	int i, A, B, C;
	for (i = 0; i < row; i++)
	{
		A = arr[i][0];
		B = arr[i][1];
		C = arr[i][2];
		if (A == 0 && B == 0 && C == 0)
		{
			break;
		}
		else
		{
			if ((A+B <= C)|| (B+C) <= A || (C+A) <= B)
			{
				cout << "Invalid" << endl;
			}
			else
			{
				if (A == B && B == C)
				{
					cout << "Equilateral" << endl;
				}
				else if (A == B || B == C || C == A)
				{
					cout << "Isosceles" << endl;
				}
				else
				{
					cout << "Scalene" << endl;
				}
			}
		}
	}

	return;
}

0개의 댓글