Я работаю над тем, что мне показалось простым, но я столкнулся с некоторыми проблемами, которые не могу решить. Проблемы вращаются вокруг функции resitance_current в коде. Я получаю два сообщения об ошибке:
1) несовместимые типы при назначении типу 'float *' из типа 'float'
2) недопустимые операнды в двоичном / (имеют «float» и «float *»)
Я пытаюсь использовать функцию resitance_current для расчета сопротивления и тока. Для этого я передаю значения «длины» провода, «area_circle» провода и «напряжения» и, используя формулу удельного сопротивления, найти R:
R = ρ L / A
и закон Ома, чтобы найти I
V = R * I
Кажется, я не могу понять, почему типы поплавков конфликтуют Мне нужно сохранить одну функцию resitance_current для расчета сопротивления и тока, поэтому помощь в прохождении указателей с плавающей точкой и в решении текущей проблемы будет высоко оценена.
Заранее спасибо за помощь;)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float areaOfcircle(float radius_circle)
{
float area_circle;
area_circle = M_PI * radius_circle * radius_circle;
return area_circle;
}
void resitance_current(float length, float area_circle, float voltage, float* resistance, float* current)
{
float resistivity;
printf("%f %f %f", length, area_circle, voltage);
resistivity = 1.782*exp(-8);
resistance = ((resistivity*length)/area_circle);
current = (voltage/resistance);
}
int main()
{
float radius, voltage, length, current, resistance;
// take radius as input
printf("Enter the radius of wire : ");
scanf("%f", &radius);
if (radius < 0)
{
exit(1);
}
else
{
printf("Enter the Voltage of circuit : ");
scanf("%f", &voltage);
if (voltage < 0)
{
exit(1);
}
else
{
printf("Enter the Length of Wire : ");
scanf("%f", &length);
if (length < 0)
{
exit(1);
}
else
{
printf("Cross Sectional Area of Wire : %.2f", areaOfcircle(radius));
resitance_current(length, areaOfcircle(radius), voltage, &resistance, ¤t);
printf("Resistance = %f , Current = %f", resistance, current);
printf("\n");
}
}
}
return 0;
}