Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

BorislavNikolov99 avatar BorislavNikolov99 3 Точки

Проблем с изчисляването на лице и периметър на триъгълник

Условието на задачта е следното: Да се напише функция, която проверява дали три числа образуват триъгълник, и втора функция,която изчислява периметъра и лицето му по Херонова формула.От клавиатурата да се въвеждат n поредици от тройки числа и след това всяка тройка се отбелязва дали триъгълникът съществува,лицето и периметърът му.

Има проблем в изчисляването, но незнам какъв е.

това е кода  http://pastebin.com/UReqVR4r

Тагове:
0
C++ Programming
ThePSXHive avatar ThePSXHive 436 Точки
Best Answer

Това, което връщаш от функцията formula, е булеви израз, а не резултат от изчисленията. Освен това не пресмяташ стойността на периметъра (P), а на полупериметърът (p), за формулата на Херон, и след това връщаш p вместо P. Имаш няколко варианта - (a) вместо да събираш всички изчисления в една-единствена функция, раздели пресмятанията между няколко функции; Perimeter() и Area(), примерно. Друг вариант е вместо double да връщаш std::pair от функцията formula, но тогава трябва да умножиш P по 2, защото спрямо твойте означения, P е полупериметър. С функцията triangle() няма проблеми, но така и така ползваш bool, връщай true или false. Връщането на 1 и 0 от bool проверки няма смисъл в C++; имаше смисъл в C, когато bool трябваше да се дефинира като макрос, защото в езика нямаше "вграден" тип bool. Не насърчавам и употребата на using namespace std; (лоша практика, защото може да доведе до конфликтни декларации на функции от библиотеки, които се намират в namespace със сходно найменование), както и фактът, че използваш хедър файл от C (math.h) вместо от C++ (cmath), но това все пак не е ревю на код, така че можеш да коригираш само функционирането на отделните функции.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.