나는 (내가 생각하기에는) 비록 float * 변수로 magnitude 배열을 저장하고있다. 왜 그것이 배열이 아닌 float 변수라고 말합니까?float * float로 변환 할 수 없지만 변수를 배열로 저장 했습니까?
는특정 오류, " '(&을, INT, 플로트 * 부동) 부동 소수점 표준 편차' 역 = 표준 편차 (길이, 크기 [길이]에 '2'인수 '플로트 *'에 '플로트'을 변환 할 수 없습니다 말한다 평균); "
#include <iostream>
#include <cmath>
using namespace std;
float stdev(int,float*,float&);
int main(void) {
int length=3;
float* magnitude=new float[length];
magnitude[0]=1;
magnitude[1]=2;
magnitude[2]=3;
float sta,avg;
sta=stdev(length,magnitude[length],avg);
cout << "Standard Deviation is" << sta << endl;
return 0;
}
float stdev(int N,float* a,float avg) {
float stdv;
float sum=0;
for (int k=0;k<N;k++) {
sum=sum+a[k];
}
avg=sum/N;
float s = 0;
for (int k=0;k<N;k++)
s=s+(a[k]-avg)*(a[k]-avg);
stdv=sqrt(s/N);
return stdv;
}
'magnitude [length]'대신 'stdev'를 호출 할 때'magnitude' 만 사용하십시오. 'magnitude [length]'는'float'으로 평가되는 반면에'magnitude'는'float *'입니다. 이것은 당신이 필요로하는 것입니다. –
스팸 태그하지 마십시오. – Olaf
크기 [길이]는 float *가 아닌 float 유형입니다. magnitude [length] 대신에 magnitude와 함께 함수를 호출하십시오. 또한 magnitude [length]는 실제로는 c/C++의 배열이 인덱스 0에서 시작하여 길이 -1까지이므로 사용자가 만든 배열의 범위 밖에 있습니다. – javey