Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2017, 14:20   #1
maxsav
Новичок
Джуниор
 
Регистрация: 01.08.2013
Сообщений: 1
По умолчанию Ошибка программе умножение матриц

Программа для умножения матриц, но программа не работает. Постоянно вылетает. Если кто может, помогите!!

Код:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int n, m, q, i, j;
	cout << "Enter cols count in matrix A and rows count in matrix B: ";
	//n - колонки в А , строки в B
	cin >> n;
	cout << "Enter rows count in matrix A: ";
	cin >> m;
	//m - строки в A
	cout << "Enter cols count in matrix B: ";
	cin >> q;
	// q - колонки в B
	int **aArr = new int *[m];
	for (i = 0; i < m; i++)
		aArr[i] = new int[n];
		for (i = 0; i < m; i++)
			for (j = 0; j < n; j++)
		{
			cout << "Enter arrays elements of matrix A ";
			cin >> aArr[i][j];
		}
	cout << "Matrix A: " << endl;
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			cout << setw(5) << aArr[i][j];
			cout << endl;
		}
	}
	int **bArr = new int *[n];
	for (i = 0; i < n; i++)
		bArr[i] = new int[q];
	for (i = 0; i<m;i++)
	{
		for (j = 0; j < q; j++)
		{
			cout << "Enter arrays elements of matrix B ";
			cin >> bArr[i][j];
		}
	}
	cout << "Matrix B: " << endl;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < q; j++)
		{
			cout << setw(5) << bArr[i][j];
			cout << endl;
		}
	}
	int **cArr = new int *[i];
	for (i = 0; i < m; i++)
		cArr[i] = new int[j];
	for (i = 0; i < m; i++)
		for (j = 0; j < q; j++)
		{
			cArr[i][j] = 0;
			for (int k = 0; k <= q + 1; k++)
				cArr[i][j] += aArr[i][k] * bArr[k][j];
		}
	cout << "Matrix C: " << endl;
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < q; j++)
			cout << setw(5) << cArr[i][j];
		cout << endl;
	}
	return 0;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 05.07.2017 в 15:10.
maxsav вне форума Ответить с цитированием
Старый 05.07.2017, 15:09   #2
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

идет переполнение размерности массива по k в строке
Код:
cArr[i][j] += aArr[i][k] * bArr[k][j]
Разбираться надо с самим алгоритмом и с размерностью массивов при его выполнении.
Мановар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение матриц Loqwer78rus Общие вопросы Delphi 1 30.09.2015 20:51
Умножение матриц MJBuster C# (си шарп) 2 01.04.2013 13:29
Умножение матриц BDA Общие вопросы C/C++ 2 20.11.2011 01:06
Умножение матриц Macmeprag Помощь студентам 3 08.10.2011 15:58