В чем ошибка? Как это решить? Этот код предназначен для нахождения площади круга с помощью указателей и функций. Ошибка, с которой я сталкиваюсь, заключается в том, что &answer
не может быть преобразован в число с плавающей запятой.
#include <iostream>
using namespace std;
void area(float, float);
int main()
{
float radius, answer = 0.0;
cout << "Enter a radius:"; // Take the radius from the user.
cin >> radius;
area(&radius, &answer);
cout << "Area of circle is:" << answer;
return 0;
}
void area(float *value, float *result) // This is the function to calculate the area.
{
*result = 3.142 * (*value) * (*value);
}
Это c++11
или c++14
? Это не может быть одновременно, поэтому отредактируйте свой вопрос, включив тот, который вы используете.
@TrebledJ прав, вам следует изменить прямое замедление, поскольку оно не соответствует функции.
Не используйте указатели таким образом. Вся функция должна быть просто float area(float value) { return 3.142f * value * value; }
Вы можете сделать одну из двух вещей:
void area(float*, float*);
void area(float *value, float *result) // This is the function to calculate the area.
{
*result = 3.142 * (*value) * (*value);
}
над функцией main()
. Любой из них будет работать.
Спасибо большое понял!!
void area(float,float);
Ваш прототип не принимает указатели.