内部商品使用C中的功能

时间:2019-01-13 14:52:41

标签: 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);
}

2 个答案:

答案 0 :(得分:6)

在您的情况下,两个向量x,y的点积应为31,并且可以通过inner_prod函数得出结果,但是您为x * x计算的点积为40 ..

简而言之,您输入错字不是问题吗?

sum=inner_prod(x[n],x[n]);

我相信您希望做到以下几点?

sum=inner_prod(x,y);

答案 1 :(得分:1)

据我所知,数组的传递是不正确的。你可以简单地做

main()中:

sum = inner_prod(x, y)

并在inner_prod()函数中:

int inner_prod(int *a, int *b)
{
    ....
}

还要在inner_prod()函数上方定义此main()函数。