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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2018, 23:48   #1
Badan
 
Регистрация: 18.09.2018
Сообщений: 5
Смущение Помогите не могу разобраться

Смотрите тема такая я написал код по лабе по массивам там все норм. Но эти массивы надо перемножить как матрицы я пишу код для перемножения но кидает ошибку я не пойму почему кто может помочь исправить ?Код прилагается
Код:
#include "pch.h"
#include <iostream>
using namespace std;

int main()
{
	setlocale(LC_ALL, "RUS");
	int rows, rows1, cols3, cols1, sum,m,i,j, cols;
m:
	system("cls");
	sum = 0;
	i = 0;
	j = 0;
	int v = 1;
	cout << "Ведите количество столбцов 1" << endl;
	cin >> rows;
	cout << "Введите количество строк 1 " << endl;
	cin >> cols;
	cout << "Ведите количество столбцов 2" << endl;
	cin >> rows1;
	cout << "Введите количество строк 2" << endl;
	cin >> cols1;
	  int **a = new int*[rows];
	  for (int i = 0; i < rows; i++)
	 {
		a[i] = new int[cols];
	 }
	  int**b = new int*[rows1];
	  for (int i = 0; i < rows1; i++)
	  {
		  b[i] = new int[cols1];
	  }
	  int**c = new int*[rows];
	  for (int i = 0; i < rows; i++)
	  {
		  c[i] = new int[cols1];
	  }
	do {
		cout << "1 массив" << endl;
		for (int i = 0; i < rows; i++)
		{
			for (int j = 0; j < cols; j++)
			{
				cin >> a[i][j];
			}

		}
		cout << "2 массив" << endl;
		for (int i = 0; i < rows1; i++)
		{
			for (int j = 0; j < cols1; j++)
			{
				cin >> b[i][j];
			}

		}
		
		system("cls");
	}
	 while (v<1);
	cout << "1 массив" << "\n" << endl;
	for (int i = 0; i < rows; i++)
	{
		for (int j = 0; j < cols; j++)
		{
			cout << a[i][j] << "\t";
		}
		cout << endl;
	}
	cout << "2 массив" << "\n" << endl;
	for (int i = 0; i < rows1; i++)
	{
		for (int j = 0; j < cols1; j++)
		{
			cout << b[i][j] << "\t";
		}
		cout << endl;
	}
	cout << "перемноженый массив" << "\n"<<endl;
	for (int i = 0; i < rows; i++)

		for (int j = 0; j < cols1; j++)

		{
			c[i][j] = 0;

			for (int k = 0; k < cols; k++)
			{

					c[i][j] += (a[i][k] * b[k][j]);
			}

		}
	for (int i = 0; i < rows; i++)
	{
		for (int j = 0; j < cols; j++)
		{
			cout << c[i][j] << "\t";
		}
		cout << endl;
	}
	for (int i = 0; i < rows; i++)
	{
		for (int j = 0; j < cols; j++)
		{
			if (c[i][j] < 0)
			{
				sum += c[i][j];
			}

		}
	}cout << "\n" <<  "sum=" << sum << endl;

	system("PAUSE");
	for (int i = 0; i < rows; i++)
	{

		delete[] a[i];

	}
	delete[] a;
	for (int i = 0; i < rows1; i++)
	{

		delete[] b[i];

	}
	delete[] b;
	for (int i = 0; i < rows1; i++)
	{

		delete[] c[i];

	}
	delete[] c;
	system("PAUSE");
	goto m;
	
 return 0;
}

Последний раз редактировалось Аватар; 01.11.2018 в 08:50.
Badan вне форума Ответить с цитированием
Старый 01.11.2018, 08:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ни оформления кода
Ни текста ошибки
Код:
c[i][j] += (a[i][k] * b[k][j]);
Вы уверены, что b размера cols x cols1
p51x на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку в коде, помогите разобраться Robert Goldstein Паскаль, Turbo Pascal, PascalABC.NET 2 03.02.2016 20:21
Помогите с директивой absolute разобраться, не могу сделать Vertolet Помощь студентам 3 26.02.2015 19:56
Помогите разобраться,не могу понять spectrum988 Помощь студентам 2 07.11.2013 18:08
Помогите. не могу разобраться с таймером nekxxtoxxx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.06.2009 12:47