Проблемы в использовании ?: как будто заявление в C ++

know nothing about programming спросил: 27 ноября 2017 в 05:41 в: c++

Сейчас я пишу программу, которая вычисляет арктангенс двух чисел, и я хотел бы использовать?: как оператор if, чтобы упростить мой код. Поскольку atan от нуля до нуля - это минус бесконечность, я добавил оператор так, чтобы если абсолютное значение вычисленного atan больше 90, результат должен быть равен 90 градусам. Однако мой код выдает -2147483648 вместо 90. В чем проблема моего кода? Большое спасибо!

#define _USE_MATH_DEFINES
#include <iostream>
#include <math.h>
#include <vector>
#include <stdlib.h>using namespace std;int main()
{
    vector<int> abc(1);
    int a=0,b=0;
    abc[0]=abs((int)(atan((float)a / b) * 180 / M_PI)) > 90 ? 90 : (int)(atan((float)a / b) * 180 / M_PI);
    cout<<abc[0];
    return 0;
}

0 ответов