c - 冒泡排序程序

标签 c

嗨,我是 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/

相关文章:

c - pthread 在使用虚拟核心时没有提供性能提升

关闭句柄() :Return value check require

C:带有 2D 阵列的 SEGFAULT

c - "++"操作在 C 中是原子的吗?

c - 在 C 中的扫描字符上运行 isdigit()

c - __func__ 和 __FUNCTION__ 指针是否持久?

c - 输出 trie.dot 时中止(核心转储)

c - pthread_setname_np() 设置功能时

c - 未知类型名称 ‘sockaddr’

c - 为什么打印链表内容时会出现段错误?