2013-12-22 34 views
-2

我正在寻找一些帮助编写下面的函数。C语言中的点产品功能

它看起来像: double dot_product(double v[],double u[],int n), 其中n是矢量

的长度是否正确?

double dot_product(double v[], double u[], int n) 
int i; 
for (i = 0; i < n; i++) 
{ 
result += v[i]*u[i]; 
} 
+2

编译器说什么? –

回答

12

您需要声明一个结果变量,将其初始化为零,并累积到该变量中,然后将其返回。

double dot_product(double v[], double u[], int n) 
{ 
    double result = 0.0; 
    for (int i = 0; i < n; i++) 
     result += v[i]*u[i]; 
    return result; 
} 
+0

是的,当然:P。 – Tom1336

+0

总体思路是正确的? – Tom1336

+0

我的答案中的代码就是你需要的。 –

1

如果result然后全局变量变化的函数的返回类型void和周围放置的函数体一个大括号;

void dot_product(double v[], double u[], int n) 
{ 
    int i; 
    for (i = 0; i < n; i++) 
    { 
     result += v[i]*u[i]; 
    } 
} 
+0

@KerrekSB;为什么? – haccks

+0

全局变量? –

+0

@DavidHeffernan;是。 [全局变量](http://en.wikipedia.org/wiki/Global_variable)。 – haccks

0

固定编码

double dot_product(double v[], double u[], int n){ 
    int i; 
    double result = 0; 
    for (i = 0; i < n; i++) 
    { 
    result += v[i]*u[i]; 
    } 
    return result; 
} 
0

HLO。试试这个

你没有两个错误是

  1. 错过{在第一线。
  2. 错过告诉返回类型。

    double dot_product(double v [],double u [],int n) int i; double result = 0.0; 结果+ = v [i] * u [i];(i = 0; } 返回结果; }