我在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是一個字符串數組 - 你不能只是奇蹟般地投這些字符串花車 –
的陣列有多少,你呢?你可以把它們放在一個文件中,如果你有很多,然後把文件名作爲參數。 –