Я делаю программу, которая преобразует прямоугольные координаты в полярные координаты, и всякий раз, когда я запускаю программу, она говорит мне, что «угол» не объявлен, даже если я уверен, что объявил его. Также я знаю, что программа ничего не возвращает, я просто хочу сейчас ее запустить.
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
double random_float(double min, double max);
void rect_to_polar(double x, double y, double &distance, double &angle);
int main() {
double x, y;
x = random_float(-1, 1);
y = random_float(-1, 1);
rect_to_polar(x, y, distance, angle);
}
double random_float(double min, double max) {
unsigned int n = 2;
srand(n);
return ((double(rand()) / double(RAND_MAX)) * (max - min)) + min;
}void rect_to_polar(double x, double y, double &distance, double &angle) {
const double toDegrees = 180.0/3.141593;
distance = sqrt(x*x + y*y);
angle = atan(y/x) * toDegrees;
}
Вы не объявили ничего под названием angle
в вашем main()
, но все еще использовал имя angle
там. Таким образом, ошибка.
Вы можете прочитать о прицелы.
Вы должны объявить distance
а также angle
в твоем главном.
int main() {
double x, y, angle, distance;
x = random_float(-1, 1);
y = random_float(-1, 1);
rect_to_polar(x, y, distance, angle);
}