2013-12-22 53 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; } 返回結果; }