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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2011, 22:04   #1
Macmeprag
Пользователь
 
Аватар для Macmeprag
 
Регистрация: 07.10.2010
Сообщений: 43
По умолчанию Умножение матриц

Код:
#include <cstdio>
#include <iostream>

typedef long double** matr;
int p;

matr mult(matr, matr);

int main(){
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	int n; scanf("%d%d", &n, &p);
	matr a = new long double *[p];
	for (int i = 0; i < p; i++) a[i] = new long double [p];
	for (int i = 0; i < p; i++)
		for (int j = 0; j < p; j++) scanf("%lf", &a[i][j]);
	a = mult(a, a);
	return 0;
}

matr mult(matr a, matr b){
	matr subMatr = new long double *[p];
	for (int i = 0; i < p; i++) subMatr[i] = new long double [p];
	for (int i = 0; i < p; i++)
		for (int j = 0; j < p; j++) subMatr[i][j] = 0;	
	for (int i = 0; i < p; i++)
		for (int j = 0; j < p; j++)
			for (int k = 0; k < p; k++)
				subMatr[i][j] += (a[i][k] * b[k][j]);					
	return subMatr;
}
вот код, алгоритм вроде верный, но где-то в умножении матрицы на матрицу все теряется..a и b передаются нормально. Помогите пожалуйста!!
Macmeprag вне форума Ответить с цитированием
Старый 08.10.2011, 01:48   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

у меня ваш код работает (вроде даже верно перемножил)
кроме того что n считывается и не используется.
Код:
	for (int i = 0; i < p; i++) {
		for (int j = 0; j < p; j++) {
			printf("%.3lf ", a[i][j]);
		}
		puts("");
	}
тестовый вывод.
onewho вне форума Ответить с цитированием
Старый 08.10.2011, 12:17   #3
Macmeprag
Пользователь
 
Аватар для Macmeprag
 
Регистрация: 07.10.2010
Сообщений: 43
По умолчанию

n нужно будет для возведения матрицы в степень, где умножение - подзадача..
у меня что-то не так с компьютером? я уже и на винде и на убунте запускал и там и там в subMatr чушь какая-то, причем разная(
Macmeprag вне форума Ответить с цитированием
Старый 08.10.2011, 15:58   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

попробуй long double на просто double замени
onewho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
умножение матриц затерявшисьвдебрях Помощь студентам 0 25.01.2011 22:13
умножение матриц Rusya_00 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 06.01.2011 23:51
умножение матриц Mila Volkova Помощь студентам 3 25.12.2010 14:17
Умножение матриц) Guzal Общие вопросы C/C++ 1 26.10.2010 21:56
Умножение матриц Alyonka_v Помощь студентам 2 18.08.2009 21:51