我在OSX 10.11上编写了一对C函数来计算极坐标形式的矢量和的大小和角度,我遇到了一些麻烦。我有两个主要问题:如何将数组输入到Mac终端上的C程序?
1)我如何给两个数组作为输入(我想求和的大小和角度的相量)到终端的功能?
2)我如何做到这一点,而强迫C有一个主,ARGC和ARGV?
下面是代码:
float PhasMag(float *coef,float *angle);
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv)
{
if(argc != 2){
printf("Incorrect number of arguments, please input an array of magnitudes and an array of angles, exiting\n");
return -1;
}
return PhasMag(argv[1],argv[2]);
}
float PhasMag(float *coef,float *angle)
{
float R = 0,Im = 0, Mag; //real and imag. parts of answer
float *countM;
int sc = 0 ,sa;
countM = coef;
while(countM != NULL){
countM = countM + 1;
sc = sc + 1;
}
sa = sc;
for(int i = 0;i<sc;i++){//computes real part
coef = coef + i; angle = angle + i;
R = R + (*coef)*cos(*angle);
}
coef = coef - sc + 1; angle = angle - sa + 1;
for(int k = 0;k<sa;k++){//computes imaginary part
coef = coef + k; angle = angle + k;
Im = Im + (*coef)*sin(*angle);
}
return sqrt(R*R+Im*Im);
}
的argv是一个字符串数组 - 你不能只是奇迹般地投这些字符串花车 –
的阵列有多少,你呢?你可以把它们放在一个文件中,如果你有很多,然后把文件名作为参数。 –