再次对不起,我不是编程方面的天才。
首先总结一下:数组输入。两个 3D 向量……哈哈,让我们用向量来计算 MORE 向量。无论如何:点积是荒谬的(小数点前有九个数字;我的意思是,说真的,我从没想过 1x8+7x5+4x2 可以有九个数字)。交叉产品是......甚至更糟。
我做了……呃……我怎么称呼它?好吧,我们称之为“traza”。我将按顺序翻译一个定义以便理解:代码的“traza”告诉我们其执行指令的顺序,以及在每一行代码之后变量如何变化。您知道,带有变量和数字标记的表格指的是代码行,如果代码执行了意外的事情,我们会在其中查看。直截了当:据我所知,一切都很好。
然后,我使用打印命令和向量中的每个值制作了一个意外的“pseudotraza”。就在输入之后和点积之前(在函数中)。猜猜看:1)这不是我的输入,在它们中的任何一个中 2)它们甚至不是相同的值 3)第一个值与我的输入相距很远,但以下至少是更多的逻辑(与输入的差异较小) .
12 小时前的今天早上,我学会了使用数组/向量/任何东西。我从来不需要在输入之前将任何值设置为 0 作为默认值。但这是我知道以前发生过这样的事情时唯一会做的事情。(总有一天你们中的任何一个人都会成为我的编程老师,你们比他自己学得更多……请原谅我糟糕的语法,西班牙的英语教学只是“在上高中一年学习一些语法规则和不超过 50 个练习。 ..这就是你通过大学入学考试所需要的一切!”)
#include <iostream>
using namespace std;
#include <stdlib.h>
const int N = 3;
typedef int Vector[N];
void introduirVector (Vector);
float producteEscalar (const Vector, const Vector); /*Input vector and dot product*/
int main (void)
{
Vector v1, v2;
float p_esc;
cout << "Introduim les dades del vector A: "; /* Input */
introduirVector (v1);
cout << "Introduim les dades del vector B: "; /* 2x Input combo */
introduirVector (v2);
cout << v1[0] << "\n" << v1[1] << "\n" << v1[2] << "\n" << v2[0] << "\n" << v2[1] << "\n" << v2[2] << endl; /* "Puseudotraza*/
p_esc= producteEscalar (v1, v2); /*Dot product*/
cout << "El producte escalar: " << p_esc; /*Dot product is...*/
system ("PAUSE");
return 0;
}
/*3x Input combo*/
void introduirVector (Vector)
{
int i;
Vector v;
for (i = 0; i < N; i++)
{
cin >> v[i];
}
return;
}
/* Dot product (why all the Vectors are set as constants but another after this is not set? It's the hint given by the teacher, my (not) beloved teacher...they gave us the main function and the other function's prototypes, but that's all) */
float producteEscalar (const Vector, const Vector)
{
float escalar;
Vector v1, v2;
/* Pseudotrazas for all*/
cout << v1[0] << "\n" << v1[1] << "\n" << v1[2] << "\n" << v2[0] << "\n" << v2[1] << "\n" << v2[2] << endl;
/* Dot product and all that */
escalar = (v1[0]*v2[0])+(v1[1]*v2[1])+(v1[2]*v2[2]);
return escalar;
}