I am trying to write a program that will compute an angle and magnitude of a given complex number. I have therefore declared an array of 2 floats in which [0] stores the real part and [1] the imaginary part. My code looks as follows:
However I am getting an error:Code:#include <stdio.h> #include <math.h> float magnitude(float c[]); void arc(float c, int *arcn); int main() { float complex[2]; float owned; printf("Enter real part > "); scanf("%f", &complex[0]); printf("Enter imaginary part > "); scanf("%f", &complex[1]); printf("Magnitude: %f", magnitude(complex)); arc(complex, &owned); printf("Angle: %f", owned); } float magnitude(float c[]) { float temp; temp = sqrt(c[0]*c[0] + c[1]*c[1]); return temp; } void arc(float c[], float *arcn) { *arcn = atan(c[1]/c[0]); }
What is wrong with the program? Please help.Code:main.c(19) : error C2440: 'function' : cannot convert from 'float [2]' to 'float'
I know I could use a return statement in the second function, but I do not want to. The whole purpose of this program is to excercise functions which return a value, and which manupulate values passed by a pointer.



LinkBack URL
About LinkBacks


