用C++编写程序,我需要帮助

Writing a program in C++ and I need help

本文关键字:帮助 程序 C++      更新时间:2023-10-16

所以我是新手。我正在尝试编写一个带有函数的程序

double_product(向量<双精度>a,向量<双精度>b),用于计算两个向量的标量乘积。标量乘积是

$a_{0}b_{0}+a_{1}b_{1}+...a_{n-1}b_{n-1}$.

这是我所拥有的。这是一团糟,但我正在努力!

#include<iostream>
#include<vector>
using namespace std;
class Scalar_product
{
public:
    Scalar_product(vector<double> a, vector<bouble> b);
};

double scalar_product(vector<double> a, vector<double> b) 
{
   double product = 0;
   for (int i=0; i <=a.size()-1; i++)
       for (int i=0; i <=b.size()-1; i++)
           product = product + (a[i])*(b[i]);
   return product;
}
int main()
{
    cout << product << endl;
    return 0;
}

在基本层面上,你有一个非常正确的想法。额外的几个基本构建块,你会很好地前进。您的scalar_product功能很接近,但不完全是。您已经创建了两个具有相同名称的循环迭代器,用于迭代相同的值。简单地说应该没问题

if (a.size() != b.size()) {} // error
for (int i=0; i < a.size(); i++)
   product = product + (a[i])*(b[i]);

现在你所要做的就是获取一些数据,调用它,然后输出结果。

int main() {
    std::vector<double> a;
    std::vector<double> b;
    // fill with the values
    std::cout << scalar_product(a, b) << endl;
}

整个class的事情在这里是完全不必要的 - 你需要的唯一类来自标准库。

因为我无法发表评论,所以我被迫回复。

显然,这里有完全相同的问题,逐字逐句

计算C++中两个向量的标量积