Это задание, с которым я боролся. В основном у меня есть основная идея и код в рабочем состоянии. Но проблема в том, что я сделал это иначе, чем инструкции.Умножение матриц с использованием массивов?
Итак, чтобы умножить матрицы, я заранее задал размеры массива (строки, столбцы). Затем я снова попрошу задать значения массива.
Но то, что я хотел бы сделать, это просто ввести значения моего массива и автоматически найти размеры массива по числу вводимых целых чисел. Но я не уверен, как это сделать, потому что я думал, что мой преподаватель сказал что-то о том, что нельзя устанавливать массивы на переменные значения или что-то в этом роде.
//what I'd like to be able to do
Enter the first matrix:
1 2 3
4 5 6
Enter the second matrix:
5 6
7 8
9 0
// what I am currently doing
#include<iostream>
using namespace std;
int main()
{
int l,m,z,n;
int matrixA[10][10];
int matrixB[10][10];
int matrixC[10][10];
cout<<"enter the dimension of the first matrix"<<endl;
cin>>l>>m;
cout<<"enter the dimension of the second matrix"<<endl;
cin>>z>>n;
if(m!=z||z!=m){
cout<<"error in the multiblication enter new dimensions"<<endl;
cout<<"enter the dimension of the first matrix"<<endl;
cin>>l>>m;
cout<<"enter the dimension of the second matrix"<<endl;
cin>>z>>n;
}
else{
cout<<"enter the first matrix"<<endl;
for(int i=0;i<l;i++){
for(int j=0;j<m;j++){
cin>>matrixA[i][j];
}
}
cout<<"enter the second matrix"<<endl;
for(int i=0;i<z;i++){
for(int j=0;j<n;j++){
cin>>matrixB[i][j];
}
}
for(int i=0;i<l;i++){
for(int j=0;j<n;j++){
matrixC[i][j]=0;
for(int k=0;k<m;k++){
matrixC[i][j]=matrixC[i][j]+(matrixA[i][k] * matrixB[k][j]);
}
}
}
cout<<"your matrix is"<<endl;
for(int i=0;i<l;i++){
for(int j=0;j<n;j++){
cout<<matrixC[i][j]<<" ";
}
cout<<endl;
}
}
//system("pause");
return 0;
}
Вы хотите помочь хранить матрицы или определить их размеры? – Beta
Я хочу иметь возможность определять размеры, когда я это делаю: cin >> matrixA [i] [j]. Так что в основном я пытаюсь получить значения двухмерного массива и установить их в одно и то же время, если возможно что-то подобное. – Sam
Возможно, но это требует некоторой работы. Вы знакомы с ['getline'] (http: //www.cplusplus.ком/ссылка/IStream/IStream/GetLine /)? Как насчет ['stringstream'] (http://www.cplusplus.com/reference/sstream/stringstream/stringstream/) или [' strtok'] (http://www.cplusplus.com/reference/cstring/strtok/)? Как насчет динамического распределения памяти или контейнеров типа 'std :: vector'? – Beta