题目详情
两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的内积定义为:
a·b=a1*b1+a2*b2+……+an*bn
编写函数,使用指针实现两个向量的内积的计算。要求函数中不出现下标运算。
编写主函数,分别输入两个向量,均以-9999为结束标志,维数相同。调用函数计算内积,在主函数中输出。向量为实数向量,维数不超过100。
输入格式:
两行用空格隔开的实数,每行以-9999为结束标志。
输出格式:
一个实数。
输入样例:
1 2 3 -9999
4 5 6 -9999
输出样例:
32
- 下面代码
#include <iostream>
using namespace std;
int main(){
double *pa = new double [100];
double *pb = new double [100];
double temp;
int i=0;
cin>>temp;
while(temp!=-9999){
*(pa+i)=temp;
i++;
cin>>temp;
}
i=0;
cin>>temp;
while(temp!=-9999){
*(pb+i)=temp;
i++;
cin>>temp;
}
int n=i;
double sum=0.0;
for(i=0;i<n;i++)
{
sum=sum+*(pa+i) * *(pb+i);
}
cout<<sum;
delete []pa;
delete []pb;
return 0;
}