#c #c 11 #c 14
#c #c 11 #c 14
Вопрос:
В чем ошибка? Как это решить? Этот код предназначен для нахождения площади окружности с помощью указателей и функций. Ошибка, с которой я сталкиваюсь, заключается в том, что amp;answer
не может быть преобразован в float .
#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(amp;radius, amp;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);
}
Комментарии:
1.
void area(float,float);
Ваш прототип не принимает указатели.2. Это
c 11
илиc 14
? Это не может быть и то, и другое одновременно, поэтому отредактируйте свой вопрос, чтобы включить тот, который вы используете.3. @TrebledJ правильно, вы должны изменить прямое объявление, поскольку оно не соответствует функции.
4. Не используйте указатели таким образом. Вся функция должна быть просто
float area(float value) { return 3.142f * value * value; }
Ответ №1:
Вы можете сделать одну из двух вещей:
- Измените прототип на
void area(float*, float*);
- Удалите прототип и переместите функцию:
void area(float *value, float *result) // This is the function to calculate the area. { *result = 3.142 * (*value) * (*value); }
над main()
функцией. Любой из них будет работать.
Комментарии:
1. Большое спасибо, понял!!