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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2017, 20:51   #1
Касік
 
Регистрация: 26.10.2016
Сообщений: 9
По умолчанию в чем ошибка? когда перемножаються матрицы неверно выводит результат

// Лаба_№5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;

void vuv(int mas[100][100], int masb[100][100], int m, int n, int q, int e);

void dob(int mas[100][100], int masb[100][100], int masc[100][100], int m, int n, int q, int e);

int main()
{

int mas[100][100], masb[100][100], masc[100][100];
int m, n, i, j, q, e;

cin >> m;
cin >> n;

for (i = 0;i < m;i++)
{
for (j = 0;j < n;j++)
{
cin >> mas[i][j];
}
}

cin >> q;
cin >> e;
;
for (i = 0;i < q;i++)
{
for (j = 0;j < e;j++)
{
cin >> masb[i][j];
}
}
vuv(mas, masb, m, n, q, e);
dob(mas, masb, masc, m, n, q, e);

}
void vuv(int mas[100][100], int masb[100][100], int m, int n, int q, int e)
{
int i, j;

for (i = 0;i < m;i++)
{
for (j = 0;j < n;j++)
{
cout << setw(4) << mas[i][j];
}
cout << endl;
}

for (i = 0;i < q;i++)
{
for (j = 0;j < e;j++)
{
cout << setw(4) << masb[i][j];
}
cout << endl;
}
}
void dob(int mas[100][100], int masb[100][100], int masc[100][100], int m, int n, int q, int e)
{
int i, j, k;
if (n == q)
{
for (i = 0;i <= n;i++)
{
for (j = 0;j <= e;j++)
{
for (k = 0;k > n;k++)
masc[i][j] += mas[i][k] * masb[k][j];
}
}

for (i = 0;i <= m;i++)
{
for (j = 0;j <= e;j++)
{
cout << setw(14) << masc[i][j];
}
cout << endl;
}

}
else cout << "Нет" << endl;
}
Касік вне форума Ответить с цитированием
Старый 07.04.2017, 10:14   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Покажи ручной счёт (контрольного примера) и результаты программы.
ura_111 вне форума Ответить с цитированием
Старый 07.04.2017, 10:57   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,724
По умолчанию

masc кто инициализирует?
p51x вне форума Ответить с цитированием
Старый 07.04.2017, 13:12   #4
Касік
 
Регистрация: 26.10.2016
Сообщений: 9
Сообщение Вот

Цитата:
Сообщение от ura_111 Посмотреть сообщение
Покажи ручной счёт (контрольного примера) и результаты программы.
[/SIZE][/FONT][/SIZE][/SIZE]
Изображения
Тип файла: png Без імені.png (11.1 Кб, 120 просмотров)
Касік вне форума Ответить с цитированием
Старый 07.04.2017, 13:32   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Код:
for (i = 0;i <= n;i++)
...
{
   for (k = 0;k > n;k++)
Цитата:
masc кто инициализирует?
Код:
masc[i][j] +=...
прибавить к тому что есть, а что в начале?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 07.04.2017 в 13:34.
evg_m вне форума Ответить с цитированием
Старый 07.04.2017, 14:47   #6
Касік
 
Регистрация: 26.10.2016
Сообщений: 9
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
for (i = 0;i <= n;i++)
...
{
   for (k = 0;k > n;k++)

Код:
masc[i][j] +=...
прибавить к тому что есть, а что в начале?
void dob(int mas[100][100], int masb[100][100], int masc[100][100], int m, int n, int q, int e)
Касік вне форума Ответить с цитированием
Старый 07.04.2017, 14:57   #7
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;

void vuv(int mas[100][100], int masb[100][100], int m, int n, int q, int e);
void dob(int mas[100][100], int masb[100][100], int masc[100][100], int m, int n, int q, int e);

int main()
{

	int mas[100][100] = { { 1, 2, 3, 4 },
	                      { 5, 6, 7, 8 },
	                      { 9, 10, 11, 12 }};
		
	int	masb[100][100] = { { 1, 2, 3 },
	                       { 4, 5, 6 },
	                       { 7, 8, 9 },
	                       { 10, 11, 12 }};
		
	int masc[100][100];
	int m = 3, n = 4, i, j, q = 4, e = 3;

	//cin >> m;
	//cin >> n;
	//for (i = 0; i < m; i++)
	//{
	//	for (j = 0; j < n; j++)
	//	{
	//		cin >> mas[i][j];
	//	}
	//}
	//cin >> q;
	//cin >> e;
	//;
	//for (i = 0; i < q; i++)
	//{
	//	for (j = 0; j < e; j++)
	//	{
	//		cin >> masb[i][j];
	//	}
	//}

	vuv(mas, masb, m, n, q, e);
	dob(mas, masb, masc, m, n, q, e);


	return 0;
}
void vuv(int mas[100][100], int masb[100][100], int m, int n, int q, int e)
{
	int i, j;

	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			cout << setw(4) << mas[i][j];
		}
		cout << endl;
	}

	for (i = 0; i < q; i++)
	{
		for (j = 0; j < e; j++)
		{
			cout << setw(4) << masb[i][j];
		}
		cout << endl;
	}
}
void dob(int mas[100][100], int masb[100][100], int masc[100][100], int m, int n, int q, int e)
{
	int i, j, k;
	for (i = 0; i <= n; i++)
	{
		for (j = 0; j <= e; j++)
		{
			masc[i][j] = 0;
		}
	}
	if (n == q)
	{
		for (i = 0; i < n; i++)
		{
			for (j = 0; j < e; j++)
			{
				for (k = 0; k < n; k++)
					masc[i][j] += mas[i][k] * masb[k][j];
			}
		}
		cout << endl;
		for (i = 0; i < m; i++)
		{
			for (j = 0; j < e; j++)
			{
				cout << setw(5) << masc[i][j];
			}
			cout << endl;
		}

	}
	else cout << "Нет" << endl;
}
ura_111 вне форума Ответить с цитированием
Старый 07.04.2017, 15:39   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ura_111, при иницилизации в циклах нужно строгое неравенство:

Код:
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < e; j++)
		{
			masc[i][j] = 0;
		}
	}
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить программу не выводит результат в чем может быть ошибка xfdhjdgh Помощь студентам 6 22.12.2016 11:19
Программа неверно считает результат AB96 Общие вопросы Delphi 2 25.11.2015 17:58
Не выводит числа обьявленные в Массиве.. посмотрите в чем ошибка програаммы TvV.PaL Visual C++ 7 27.10.2010 15:21
посмотрите пожалуйста в чем ошибка.Ответ всегда -14 выводит. JNN Общие вопросы C/C++ 5 04.06.2009 15:50
В чем ошибка в запросе?неверный результат =( Lunatikus SQL, базы данных 3 26.11.2007 09:50