import math
a = int(input())
b = int(input())
c = int(input())
if a > b:
swap(a, b)
if b > c:
swap(b, c)
if a > b:
swap(a, b)
if c * c == a * a + b * b:
print("прямоугольный")
else:
cos_alpha = float(a * a + b * b - c * c) / float(2 * a * b)
PI = math.acos(-1)
print(math.acos(cos_alpha) * 180 / PI)
Объяснение:
Вводим значения сторон, упорядочиваем их так, чтобы было
, проверяем, является ли треугольник прямоугольным по теореме Пифагора. Если он не прямоугольный, то пользуемся теоремой косинусов, а также тем, что против большей стороны лежит больший угол
Код программы:
#include <iostream>
#include <locale>
#include <time.h>
using namespace std;
void rand_mas(int *mas, int n) {
srand(time(NULL));
int a = -30, b = 30;
for (int i = 0; i < n; i++)
mas[i] = a + rand() % (b - a);
}
int min_mas(int *mas, int n) {
int min = mas[0];
for (int i = 1; i < n; i++) {
if (min > mas[i])
min = mas[i];
}
return min;
}
int main()
{
setlocale(LC_ALL, "Russian");
int *A, N, min, *temp;
cout << "Введите количество элементов в массиве" << endl;
cin >> N;
A = new int[N];
rand_mas(A, N);
cout << "Исходный массив: " << endl;
for (int i = 0; i < N; i++)
cout << A[i] << ' ';
min = min_mas(A, N);
temp = A;
A = new int[N + 1];
A[0] = min;
for (int i = 1, j = 0; i < N; i++) {
if (temp[j] == min) {
++j;
A[i] = temp[j];
++j;
continue;
}
A[i] = temp[j];
++j;
}
cout << "\nИзмененный массив: " << endl;
for (int i = 0; i < N; i++)
cout << A[i] << ' ';
return 0;
}