Стыдно, но совсем не помню алгебру Что-то там строка на столбец... и всё. Дальше провал). И как это оформить в Си? #define M_LONG 1000 #define N_LONG 500 // mas1= 1000x500 // mas2= 500x1000 //... for (i=0; i<M_LONG * N_LONG; i++) // попытка намутить это дело в цикле... { for (j; j>N_LONG; j++) { *(mas1 + i)= *(mas1 + i) * *(mas2 + j + r); \\ r - ряд } cout << *(mas1 + i) << "\t"; j=0; r++; //... }
Freecod A = B*C, число столбцов B должно совпадать с числом строк C, перемножаются строки на столбцы по формуле a[i,j] = b[i,1]*c[1,j] + b[i,2]*c[2,j] + ... + b[i,n]*c[n,j]
А можно весь код увидеть, как он выглядит? Оч надо... Туплю ф этом по жудкому, а задачки сдать надо в ближайшую неделю.. Иначе турнут....
Алгоритм уже crypto написал. Вот его реализация для матрицы 2х2. Думаю под произвольную матрицу не составит труда переделать Код (Text): #include <stdio.h> #include <stdlib.h> int m1[2][2] = {{3,1}, {8,2}}; int m2[2][2] = {{2,0}, {1,3}}; int rez[2][2]; int main() { int i = 0, j = 0, k = 0; for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { rez[i][j] = 0; for (k = 0; k < 2; k++) rez[i][j] += m1[i][k] * m2[k][j]; } } for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) printf("%3d", rez[i][j]); printf("\n"); } return 0; } Удачи в сдаче сессии
Можно ещё перемножить по Винограду (http://ru.wikipedia.org/wiki/Алгоритм_Копперсмита—Винограда) или по Штрассену (для квадратных матриц) (http://it.kgsu.ru/TI_7/salg_015.html).