Error C2664: невозможно преобразовать аргумент 3 из "float *" в "float - C (СИ)
Формулировка задачи:
Привет всем.
Написал программу по переводу полярных координат в декартовые, вроде всё должно работать, но мешает эта ошибка и я не могу её найти, Help!
#include <math.h>
#include <stdio.h>
#include <Windows.h>
/* Прототиа функции перевода полярных координат в декартовые
функция возвращает целое число, которое определяет место точки в декартовой системе */
int polarToCartesian(float, float, float, float);
void main()
{
float x, y,r,phi;
for (int i = 0; i < 3; i++){
printf("Введите через пробел две полярных координаты/n");
scanf_s("%f%f", &r, &phi);
polarToCartesian(r, phi, &x, &y);
}
getchar(); getchar();
}
/* Описание функции перевода полярных координат в декартовые с определением расположения точки в декартовой системе */
int polarToCartesian(float r, float phi, float *x, float *y)
{
int n = 0;
*x = r*cos(phi); // Расчёт координаты х
*y = r*sin(phi); // Расчет координаты у
printf("x=%f", &x);
printf("y=%f", &y);
/* Определения расположения точки в декартовой системе */
if (x == 0 && y == 0)
n = 0;
if (x != 0 && y == 0)
n = -1;
if (x == 0 && y != 0)
n = -2;
if (x > 0 && y > 0)
n = 1;
if (x < 0 && y > 0)
n = 2;
if (x < 0 && y < 0)
n = 3;
if (x > 0 && y < 0)
n = 4;
switch (n)
{
case -2: printf("Точка лежит на оси OY"); break;
case -1: printf("Точка лежит на оси OX"); break;
case 0: printf("Точка лежит в начале координат"); break;
case 1: printf("Тока лежит в первой четверти"); break;
case 2: printf("Тока лежит во второй четверти"); break;
case 3: printf("Точка лежит в третьей четверти"); break;
case 4: printf("Тока лежит в четвёртой четверти"); break;
}
return n;
}Решение задачи: «Error C2664: невозможно преобразовать аргумент 3 из "float *" в "float»
textual
Листинг программы
int polarToCartesian(float r, float phi, float *x, float *y)