Определить существование треугольника, зная длины сторон - C (СИ)
Формулировка задачи:
Заданные три числа. Определить, могут ли они быть сторонами треугольника и, если да, определить его тип: равносторонний, равнобедренный, произвольный.
Помогите исправить код, я в C новенький.
#include <math.h>
#include <conio.h>
#include <stdio.h>
double a, b, c;
void main()
{
printf ("Programa dl9 vuznachennu tupu trukytnuka \n");
printf ("------------------------------\n");
printf ("Vveditb a: ");
scanf ("%f", &a);
printf ("Vveditb b: ");
scanf ("%f", &b);
printf ("Vveditb c: ");
scanf ("%f", &c);
if (a+b<=c)or(a+c<=b)or(b+c<=a)
printf ("Ce ne trukytnuk");
else if (a=b)and(b=c)
printf ("Ce rivnobi4nuu trukytnuk");
else if ((a=b)and(b<>c))or((a=c)and(b<>c))or((b=c)and(a<>c))
printf ("Ce rivnobedrenuu trukytnuk");
else printf ("Ce dovilniu trukytnuk");
}Решение задачи: «Определить существование треугольника, зная длины сторон»
textual
Листинг программы
#include "stdafx.h"
#include <math.h>
#include <conio.h>
#include <stdio.h>
int main()
{
double a, b, c;
int c1=0, c2=0, c3=0;
printf ("Programa dl9 vuznachennu tupu trukytnuka \n");
printf ("------------------------------\n");
printf ("Vveditb a: ");
scanf ("%f", &a);
printf ("Vveditb b: ");
scanf ("%f", &b);
printf ("Vveditb c: ");
scanf ("%f", &c);
c1=( ( (a+b)>c ) && ( (a+c)>b ) && ( (b+c)>a) );
c2=( (a==b) || (a==c) || (b==c) );
c3=( (a==b) && (b==c) );
if (c3) {printf("Eto ravnostoronniy treugolnik.\n"); return 0;}
if (c2) {printf("Eto ravnobedrenniy treugolnik.\n"); return 0;}
if (c1) {printf("Eto proizvolniy treugolnik.\n"); return 0;}
printf("Eto ne treugolnik\n"); return 0;
getch();
}
Объяснение кода листинга программы
- a, b, c - переменные типа double для хранения длин сторон треугольника
- c1, c2, c3 - переменные типа int для хранения результатов проверки условий
- printf (
Programa dl9 vuznachennu tupu trukytnuka \n); - вывод названия программы - printf (
------------------------------\n); - вывод разделителя - printf (
Vveditb a:); - запрос на ввод значения переменной a - scanf (
%f, &a); - считывание значения переменной a - printf (
Vveditb b:); - запрос на ввод значения переменной b - scanf (
%f, &b); - считывание значения переменной b - printf (
Vveditb c:); - запрос на ввод значения переменной c - scanf (
%f, &c); - считывание значения переменной c - c1=( ( (a+b)>c ) && ( (a+c)>b ) && ( (b+c)>a) ); - расчет и присвоение значения переменной c1
- c2=( (a==b) || (a==c) || (b==c) ); - расчет и присвоение значения переменной c2
- c3=( (a==b) && (b==c) ); - расчет и присвоение значения переменной c3
- if (c3) {printf(
Eto ravnostoronniy treugolnik.\n); return 0;} - проверка условия и вывод сообщения в случае истинности - if (c2) {printf(
Eto ravnobedrenniy treugolnik.\n); return 0;} - проверка условия и вывод сообщения в случае истинности - if (c1) {printf(
Eto proizvolniy treugolnik.\n); return 0;} - проверка условия и вывод сообщения в случае истинности - printf(
Eto ne treugolnik\n); - вывод сообщения в случае, если ни одно из условий не выполнено - getch(); - ожидание нажатия клавиши для завершения программы
- return 0; - завершение программы
- В случае, если введенные значения не удовлетворяют ни одному из условий, программа выводит сообщение
Eto ne treugolnik.