我想用这种方法将矩阵乘以矢量,从而为矩阵的行和列以及矢量数据引入我自己的cin>>
,这也是我的乘法方法。
int multiply()
{
int a[3][3]= //MY OWN INPUT
int b[]={1,2,3}; //MY OWN INPUT
int c[3]; //SOLUTION
for (int i=0;i<3;i++)
{
c[i]=0;
}
for (int i=0;i<3;i++)
{
for (int j=0;j<3;j++)
{
c[i]+=(a[i][j]*b[j]);
}
}
for (int i=0;i<3;i++){
cout<<c[i]<<" "<<endl;
}
system ("pause>0");
}
我想对于矩阵,读取输入将是这样,
void leerMatriz( int **M, int fil, int col )
{
cout << "\nRellenar la matriz:\n";
for( int i = 0; i < fil; i++ ){
for( int j = 0; j < col; j++ ){
cout << "Matriz[" << i << "][" << j << "]: ";
cin >> M[i][j];
}
}
}
int main()
{
int filA, colA, filB, colB;
cout << "\nDimension de la matriz A:";
cout << "\nFilas de la matriz: "; cin >> filA;
cout << "Columnas de la matriz: "; cin >> colA;
int** A = new int*[filA];
for( int i = 0; i < filA; i++ )
A[i] = new int[colA];
leerMatriz( A, filA, colA );
cout << "\nDimension de la matriz B:";
cout << "\nFilas de la matriz: "; cin >> filB;
cout << "Columnas de la matriz: "; cin >> colB;
int** B = new int*[filB];
for( int i = 0; i < filB; i++ )
B[i] = new int[colB];
leerMatriz( B, filB, colB );
但是向量呢?有没有更简单的方法?
您与我们共享的代码存在一些问题,但这是编写此代码的一些提示:
1]避免像在主体中一样使用原始指针,可能要看一下类似A proper way to create a matrix in c++的情况,其中定义了一个类。例如,该类可以具有“ getInput”功能,该功能可以捕获用户的输入。您也可以为向量编写类似的内容。
2)我确定您知道,在矩阵矢量积中,大小很重要。确保向量大小与矩阵的行数相对应。并确保程序上的大小为initialized。
3)当通过标准输入将多元素输入作为列表的值时,定义分隔符很重要。 (向量[0,1,2,3,4]可以写为"0,1,2,3,4"
),然后您必须将该字符串解析为值。或者只是简单地逐个输入您的输入字符。
4)您的乘积功能需要根据您的输入权限“适应”吗?因此,它必须将一些参数作为输入。
在c ++中,很容易因非数学问题而迷失,而且很容易编写“错误”代码,变得容易,以两个向量相乘开始可能是?]