Определить существование треугольника - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a, b, c, t1, t2;
system ("chcp 1251 > nul");
printf("Введите длины трёх отрезков:\n", a, c, b);
scanf("%d\n%d\n%d", &a,&b,&c);
{
if (a+b>c && a+c>b && c+b>a)
printf("Построение треугольника из этих отрезков возможно!\n");
else printf("Построение треугольника из этих отрезков невозможно!\n" );
}
{
if (a>b && a>c)
printf("\n",a, a*a, t1=a*a, t2=b*b+c*c );
else if (a<b && b>c)
printf("\n", b*b, t1=b*b, t2=a*a+c*c);
else printf("\n", c*c, t1=c*c, t2=a*a+b*b);
}
{
if (a+b<c || a+c<b || c+b<a)
printf("\n");
else if (t1>t2)
printf("Тупоугольный треугольник.\n");
else if(t1<t2)
printf("Остроугольный треугольник.\n");
else printf("Прямоугольный треугольник.\n");
}
system("pause");
return 0;
}Решение задачи: «Определить существование треугольника»
#include <stdio.h>
void IsTriangle(double a, double b, double c);
main()
{
}
void IsTriangle(double a, double b, double c)
{
double x,y,z;
if(a > b)x=a,y=b,z=c;
else x=b,y=a,z=c;
if(c > x)x=c,y=a,z=b;
if(1 > fabs((x*x-(y*y+z*z))/(-2*y*z)) > 0)
printf("Triangle is");
else
printf("What a shit you gave me?!");
}
Объяснение кода листинга программы
В этом коде определена функция с именем IsTriangle, которая принимает три аргумента типа double — a, b и c. Эта функция проверяет, является ли треугольник со сторонами a, b и c прямоугольным (имеет форму прямоугольного треугольника).
В функции main() нет никакого кода, поэтому она пуста.
В функции IsTriangle() сначала определяются три переменные типа double — x, y и z. Затем происходит перестановка значений переменных a, b и c в переменные x, y и z соответственно. Это делается для того, чтобы самый большой угол треугольника был в первой переменной (x).
Далее происходит проверка: если c больше x, то происходит перестановка значений переменных x, y и z. Это нужно для того, чтобы самый большой угол треугольника был во второй переменной (y).
Затем происходит вычисление значения выражения (xx-(yy+zz))/(-2y*z) и проверка его на положительность. Если это значение больше 1, то треугольник является прямоугольным, и в консоль выводится сообщение Triangle is. В противном случае выводится сообщение What a shit you gave me?!.