Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2020, 17:52   #1
Vladimir2201
Новичок
Джуниор
 
Регистрация: 25.10.2020
Сообщений: 2
По умолчанию Не работает условие if-else на C

Код:
#include <stdio.h>
#include <locale.h>
main()
{
float a, b, c, P;
setlocale(LC_ALL, "Rus");
printf("Введите стороны треугольника\n");
scanf("%f%f%f", &a, &b, &c);
if(a || b || c <= 0){
	printf("Не существует");}
 else {
P=a+b+c;
printf("Периметр треугольника %f", P);
}
getch();
}
Всегда выполняется первый вариант, подскажите, пожалуйста, в чём проблема?
Vladimir2201 вне форума Ответить с цитированием
Старый 25.10.2020, 18:16   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Потому что ваше условие фактически проверяет, что а не равно нулю или б не равно нулю или с меньше либо равно нулю, а не проверка каждой из сторон на неотрицательность. Второе замечание, что треугольник не существует, если сумма любых двух сторон меньше либо равна третьей.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.10.2020, 09:32   #3
Vladimir2201
Новичок
Джуниор
 
Регистрация: 25.10.2020
Сообщений: 2
По умолчанию

Подскажите, пожалуйста, как тогда правильно сделать условие
Vladimir2201 вне форума Ответить с цитированием
Старый 26.10.2020, 11:10   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Код:
if
( ((a+b)<c) || ((a+c)<b) || ((b+c)<a) )
	printf("Не существует");  else { ....
Скобок много не бывает Лишнюю пару скобок { } выбросим, бо оператов if в только один.
Ну или
Код:
 p = a+b+c ;
 p2 = p/2 ;
 if   ( (a>=p2) || (b>=p2) || (c>=p2) ) ....
--------------------------------------
Да пожалуйста, пользуйся .

Последний раз редактировалось digitalis; 27.10.2020 в 10:59.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает условие if() KAMLS Общие вопросы по Java, Java SE, Kotlin 1 17.10.2018 08:02
Условие в PHP - Не работает условие: не выводит сообщение. Ave_Ave_Ave PHP 13 17.06.2016 12:20
Условие не работает Sony_boy Общие вопросы Delphi 2 04.10.2015 08:02
Не работает условие ilyxaaa Общие вопросы Delphi 10 22.09.2014 11:40
Не работает условие!!! VintProg Общие вопросы C/C++ 5 12.08.2011 04:40