我试图使用函数计算内积,但返回的值不正确.
/* 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)
在你的情况下,两个向量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)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |