Почему функция выполняется два раза? C++

Компьютеры программирование программы windows C++

#include <cstdlib>
#include <iostream>
#include <locale.h>
#include <windows.h>
#include <math.h>
using namespace std;

int head()
{
cout << " *** ÊÂÀÄÐÀÒÍÛÅ ÓÐÀÂÍÅÍÈß ***\n";
cout << "Äàííàÿ ïðîãðàììà ðåøàåò êâàäðàòíûå óðàâíåíèÿ.\n";
cout << "×òîáû íà÷àòü, ââåäèòå äàííûå.\n";
cout << "Íàïèñàòü àâòîðó: [email protected]\n \n";
}

int printEq(int a, int b, int c)
{
cout << "\n" << a << "x^2";
if(b < 0)
{
cout << b << "x";
}
else
{
cout << "+" << b << "x";
}
if(c < 0)
{
cout << c;
}
else
{
cout << "+" << c;
}
cout << "=0\n";
cout << "a=" << a << ", b=" << b << ", c=" << c;
}

double printCalcDis(int a, int b, int c)
{
double bb = b*b;
double ac = 4*a*c;
double acm = fabs(ac);
double d = sqrt(bb-ac);
cout << "\n \nD=" << b << "^2" << "-4*" << a << "*" << c << "=" << bb;
if(ac > 0)
{
cout << ac;
}
else
{
cout << "+" << acm;
}
cout << "=" << d << "^2";
if(d < 0)
{
cout << "\n \nÄèñêðèìèíàíò îòðèöàòåëüíûé, çíà÷èò óðàâíåíèå íå èìååò äåéñòâèòåëüíûõ êîðíåé.";
system("pause");
}
else
{
cout << "\n \nÄèñêðèìèíàíò ïîëîæèòåëüíûé.";
}
return d;
}

double printCalcRoots(int a, int b, int c)
{
double d = printCalcDis(a, b, c);
double bmd = (-1*b-d);
double bpd = (-1*b+d);
double ad = (2*a);
double x1 = bmd/ad;
double x2 = bpd/ad;
cout << "\n \nx1=(-1*" << b << "-" << d << ")/(2*" << a << ")=" << bmd << "/" << ad << "=" << x1;
cout << "\nx2=(-1*" << b << "+" << d << ")/(2*" << a << ")=" << bpd << "/" << ad << "=" << x2 << "\n";
}

int main(int a, int b, int c, double d)
{
setlocale(LC_ALL,"Russian");
head();
cout << "Ââåäèòå ñòàðøèé êîýôôèöèåíò a = ";
cin >> a;
cout << "Ââåäèòå ñðåäíèé êîýôôèöèåíò b = ";
cin >> b;
cout << "Ââåäèòå ñâîáîäíûé ÷ëåí c = ";
cin >> c;
printEq(a, b, c);
printCalcDis(a, b, c);
printCalcRoots(a, b, c);
system("pause");
}

Почему функция printCalcDis(a, b, c) выполняется два раза?

Примечание:
Вот нормальный код в cpp формате: http://sendfile.su/542910

Примечание:
Вот сама прога: http://sendfile.su/542912

Примечание:
NotSoMatter, она там не вызывается. Там возвращается значение переменной d.
Ответы:
Эта функция вызывается в printCalcRoots(int a, int b, int c) и в главном теле. Итого два раза.
Чтобы задать значение переменной, функция вызывается на выполнение. Не веришь - не верь.
Я уже 13 лет программирую и наверно что-то не знаю в новых технологиях...
если про printCalcDis  функцию то уже написали. в main и printCalcRoots


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.