|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.04.2010, 18:00 | #1 |
Пользователь
Регистрация: 25.01.2010
Сообщений: 11
|
Произведение разреженных матриц
Здравствуйте. Возникла не большая проблемка с задачей по перемножению матриц.
ЗАДАЧА: произведение разреженный матриц (матрицы хранятся во входном файле сначала размер, потом данные). Вот что у меня получилось: #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int main(){ setlocale(0,"Rus"); int n,m,s,p,x; ifstream fin; ofstream fout; fin.open("dan.txt"); if(fin.fail()){cout<<"Error open"; return 2;} fin>>n; fin>>m; //cout<<n<<endl<<m<<endl; int **Mas= new int*[n]; for(int i=0; i<n; ++i){ Mas[i] = new int[m]; for(int j=0; j<m; ++j){ fin>>x; Mas[i][j]=x; cout.width(3); cout<<Mas[i][j]; } cout<<endl; } cout<<"Умножается на"<<endl; fin>>s; fin>>p; //cout<<s<<endl<<p<<endl; int **Mas2= new int*[s]; for(int i=0; i<s; ++i){ Mas2[i] = new int[p]; for(int j=0; j<p; ++j){ fin>>x; Mas2[i][j]=x; cout.width(3); cout<<Mas2[i][j]; } cout<<endl; } cout<<endl; if(m==s){ int **MasRez= new int*[n]; for(int i=0; i<n; ++i){ MasRez[i] = new int[p]; for(int j=0; j<p; ++j){ for(int r=0; r<s;++r ){ MasRez[i][j]+=Mas[i][r]*Mas2[r][j]; if(r==s-1){ cout.width(3); cout<<MasRez[i][j]; } } cout<<endl; } } } return 0; } Проблема в том, что у меня даже умножение простых матриц не получается. Сделал все как нужно по алгоритму, по всем правилам, а он выводит всякую ахинею. Не могу понять, где допустил оплошность. Помогите, пожалуйста. Заранее при много благодарен. |
24.04.2010, 18:37 | #2 |
Пользователь
Регистрация: 25.01.2010
Сообщений: 11
|
Нашел в чем ошибка. Забыл обнулить массив =)
MasRez[i] = new int[p]; for(int j=0; j<p; ++j){ MasRez[i][j]=0; for(int r=0; r<s;++r ){ MasRez[i][j]+=Mas[i][r]*Mas2[r][j]; подскажите как можно перемножить разреженные матрицы? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
доказательство, что произведение матриц А и В не коммутативно. Язык С | sanela | Помощь студентам | 2 | 26.01.2010 02:11 |
Произведение определителей матриц. Паскаль | Nyuta555 | Помощь студентам | 10 | 07.10.2009 16:43 |
Паскаль. Делфи(Консоль). Произведение матриц | Doublefaced | Помощь студентам | 8 | 28.06.2009 00:51 |
произведение матриц | Lampard | Помощь студентам | 3 | 30.03.2009 19:00 |
Произведение двух матриц | 010 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 03.06.2008 11:33 |