Перемножение матриц ПРОБЛЕМА!!!

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Перемножение матриц ПРОБЛЕМА!!!

Re: Перемножение матриц ПРОБЛЕМА!!!

Rycharg » 21 апр 2009, 21:41

Приветствую.
А Вас не смущает, что для инициализации матрицы 3*3 Вам достаточно четырёх чисел? Советую входить в циклы с i и j равными нулю, а на консоль выводит i+1( j+1).

Код: Выделить всё

for (i=1; i<N; i++)
for (j=1; j<N; j++)
for (k=1; k<N; k++)
{C[i][k]=A[i][j]*B[j][k];
cout<<"C["<<i<<"]["<<k<<"]="<<C[i][k]<<endl;}
А может так?

Код: Выделить всё

for(i = 0; i < N; ++i)
   for(j = 0; j < N; ++j){
      for(k = 0; k < N; ++k)
         C[i][j] += A[i][k] * B[k][j];
      cout << "C[" << i + 1 << "][" << j + 1 << "]=" << C[i][j] << endl;
   }
Только стоит обнулить матрицу С перед входом в цикл.

З.Ы. Для успешного выполнения операторов "+", "-", "/", "*", "=" и "[]" не обязательно подключать math.h)).

Перемножение матриц ПРОБЛЕМА!!!

SilentM » 19 апр 2009, 17:07

Проблема с перемножением матриц 3*3.
С клавы вводим матрицы А и Б и надо их перемножить..
Помогите ПЛИЗЗЗ!!!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Как производить сплюсовывание?? считает все правильно, но С[1][1] надо сложить c C[1][1] и т.д. и получить готовую матрицу.. Как сложить??

#include<iostream>
#include<math.h>
using namespace std;
const N=3;
void main()
{int i,j,A[N][N],B[N][N],k,C[N][N];

for (i=1; i<N; i++)
for (j=1; j<N; j++)
{cout<<"A["<<i<<"]["<<j<<"]=";
cin>>A[j];}

for (i=1; i<N; i++)
for (j=1; j<N; j++)
{cout<<"B["<<i<<"]["<<j<<"]=";
cin>>B[j];}

for (i=1; i<N; i++)
for (j=1; j<N; j++)
for (k=1; k<N; k++)
{C[k]=A[j]*B[j][k];
cout<<"C["<<i<<"]["<<k<<"]="<<C[k]<<endl;}

}

Вернуться к началу