Другие языки программирования и технологии

помогите написать на языке с++ http://cs303106.userapi.com/v303106595/3c22/IBXRjVwZEJY.j

#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
using namespace std;
double ctg(const double);
bool check(const double, const double);
double fu(const double, const double);
int main() {
    double x, y;
    cout << "x, y?.. "; cin >> x >> y;
    if (check(x, y)) cout << "u = " << fu(x, y) << endl;
    else cout << "\aError!" << endl;
    cin.get(); cin.get();
    return 0;
}
double fu(const double x, const double y) {
    double result, left, right;
    if (x / y < 1) {
        left = exp(2.) * cos(M_PI * x * x) * y;
        right = ctg(x * y * y - 1 / pow(x, 1 / 3.));
        result = left < right? left : right;
    } else x * y - x * x - y * y;
    return result;
}
double ctg(const double arg) { return cos(arg) / sin(arg); }
bool check(const double x, const double y) {
    bool ex = true;
    if (!y || (x / y < 1 && x <= 0)) ex = false;
    else if (fabs(x * y * y - 1 / pow(x, 1 / 3.)) <= 1e-10) ex = false;
    return ex;
}
Александр Потапов
Александр Потапов
58 719
Лучший ответ
x,1./3
а че не x,1.0/3 или так тоже кушает?

Думаю он понять не может из чего выбрать:
double pow ( double base, double exponent );
long double pow ( long double base, long double exponent );
float pow ( float base, float exponent );
double pow ( double base, int exponent );
long double pow ( long double base, int exponent );

потому где-то лучше написать pow(x, float(1.0/3))) а то видно он думает, что то int