При попытке компиляции этого кода мне выдает какие-то две странные ошибки, что указывают на первую строку. Как решать их - ума не приложу, а решения этой проблемы нигде не нашел, поэтому в отчаянии заливаю его сюда :,). Прошу прощения, если мои комментарии кому-то будут резать глаз: мне было слегка не до грамматики в тот момент. Сами ошибки:
LNK2019ссылка на неразрешенный внешний символ"double __cdecl question1(int,double)" (?question1@@YANHN@Z)в функции"class std::vector<double,class std::allocator<double> > __cdecl add(class std::vector<double,class std::allocator<double> >,int,int,double)" (?add@@YA?AV?$vector@NV?$allocator@N@std@@@std@@V12@HHN@Z).LNK1120неразрешенных внешних элементов:1
#include <iostream>
#include <vector>
#include <math.h>
#include <random>
using namespace std;
/// func ///
double question1(int a, double b);
void output(vector<double> v);
vector<double> add(vector<double> v, int size);
double question1(double a, double b) // first question
{
try
{
throw (3 * a * pow(b, 2) - pow(b, 3)); // checks denominator
}
catch (double check)
{
if (check != 0) // if denominator isn't a zero returns answer
{
return (pow((a + b), 3) - (pow(a, 3) - 3 * pow(a, 2) * b) / check);
}
else // if denominator is a zero doesn't return anything but output a error message
{
return 0;
cout << "ERROR 001 : Zero in the denominator." << endl;
}
}
}
void output(vector<double> v) // output vector
{
cout << "----------Start----------" << endl;
for (int i = 0; i <= int(v.size()); i++)
{
cout << i << ". Answer is: " << v[i] << endl;
}
cout << "----------End----------" << endl;
}
vector<double> add(vector<double> v, int size, int a, double b) // inputs random numbers to q1 and adds it to vector
{
for (int i = 0; i <= size; i++)
{
a += ((-9 + rand() % 9) / 10);
b += ((-9 + rand() % 9) / 10);
v.push_back(question1(a, b));
}
return v;
}
int main() // main
{
int a = 100; double b = 0.001;
vector<double> answer; // vector where answers collect
answer.push_back(question1(a, b)); // adds a answer to the vector
answer = add(answer, 100, a, b);
output(answer);
system("pause"); // end program
return 0;
}
Так же я там немного налажал с обработкой ошибки. Хоть в комментарии и написано, что он ничего кроме сообщения не возвращает, но это не так. Он возвращает ноль, ибо в противном случае ничего работать не будет. Кто знает, как это можно реализовать без костылей - отпишитесь, пожалуйста, а то переписывать ту часть не хочется.

double question1(int a, double b);илиdouble question1(double a, double b);. – maestro Mar 21 '21 at 02:40vector<double> add(vector<double> v, int size);->vector<double> add(vector<double> v, int size, int a, double b)??? – Mar 21 '21 at 03:14