内部产品使用C中的功能

HB *_*led 1 c compilation

我试图使用函数计算内积,但返回的值不正确.

/* Inner product x[n]*y[n]   */

#include <stdio.h>
#define n 5

void main()
{
    int i,sum;
    int x[n]={1,2,-1,3,5};
    int y[n]={0,6,-2,4,1};
    sum=inner_prod(x[n],y[n]);
    printf("\nThe inner product = %d",sum);
}

int inner_prod( int a[n], int b[n] )
{
    int i, s=0;
    for(i=0;i<n;i++)
        s=s+b[i]*a[i];
    return (s);
}
Run Code Online (Sandbox Code Playgroud)

pat*_*805 6

在你的情况下,两个向量x,y的点积应该是31,并且你的内部函数会得到这个,但你计算了x*x的点积,在你的情况下得到了40 ...

简而言之,你刚刚犯错误的问题不是吗?

sum=inner_prod(x[n],x[n]);
Run Code Online (Sandbox Code Playgroud)

我相信你想要这个以下吗?

sum=inner_prod(x,y);
Run Code Online (Sandbox Code Playgroud)