嗨,我是 c 语言的新手,当我编译当前代码以查找方差时,出现以下错误:预期表达式 before']' token var=var+pow((x[]-my_mean(n,double) x[])),2); #包括 #包括 双 my_var(int n, 双 x[]); 双 my_mean(int n, 双 x[]); 双 my_sum(int n, 双 x[]);
int main (void)
{
int n=5;
double x[]={4, 6, 2, 7, 9};
my_var(n,x);
return 0;
}
double my_mean( int n , double x[])
{
return my_sum(n, x)/ n;
}
double my_sum(int n , double x[])
{
int i;
double s=0;
for( i= 0; i<n ;i++)
{
s = s + x[i];
}
return s;
}
double my_var(int n, double x[])
{
double var;
int i;
for (i=0;i<n;i++)
{
var=var+pow((x[]-my_mean(int n,double x[])),2);
}
return var;
}
最佳答案
好的..我已经用你的代码解决了一些问题..看看::
#include <stdio.h>
#include <math.h>
double my_var(int n, double x[]);
double my_mean(int n, double x[]);
double my_sum(int n, double x[]);
int main (void)
{
int n=5;
double x[]={4, 6, 2, 7, 9};
printf("%f",my_var(n,x));
return 0;
}
double my_mean( int n , double x[])
{
return my_sum(n, x)/ n;
}
double my_sum(int n , double x[])
{
int i;
double s=0;
for( i= 0; i<n ;i++)
{
s = s + x[i];
}
return s;
}
double my_var(int n, double x[])
{
double var=0;
int i;
for (i=0;i<n;i++)
{
var=var+pow((x[i]-my_mean(n,x)),2);
}
return var;
}
刚刚在main
末尾添加了一条打印语句来检查结果。在函数 double my_var(int n, double x[])
代码的 for 循环中,您有一条语句::var=var+pow((x[]-my_mean( int n,double x[])),2);
,首先不能在函数调用中指定数据类型。此外,在 pow
函数中,您可以编写 (x[]-my_mean(int n,double x[])),2
,而不是 x[]
应该是x[i]
,你需要指定一个索引。
希望这有帮助。
关于c - 冒泡排序程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27429427/