Написать функцию типа void ,которая перемножает две целочисленные матрицы (z = x*y),используя только адресную арифметику.Объявляется три двумерных массива (int x[m][n], int y[m][n],int z[m][n]).Зачем-то задаются ещё две целочисленные константы(не пойму,для чего).Кто-нибудь может это осилить ? Не догоняю я эти матрицы...линейной алгебры у нас нет.
P.S.: НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ СИМВОЛЫ [].РАЗРЕШЕНА ТОЛЬКО АДРЕСНАЯ АРИФМЕТИКА И УКАЗАТЕЛИ !
Вот ссылка на вики, где написан алгоритм.
Ты не можешь перемножать int x[m][n], int y[m][n]
разве что int x[m][n], int[n][m]. Так как результирующая размерность должна быть [m][m].
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
const int size = 5;
int **x = new int*[size];
for (int i = 0; i < size;++i)
x[i] = new int[size];
for (int i = 0;i < size;++i)
for (int j = 0;j < size;++j)
x[i][j] = i*j;
for (int i = 0;i < size;++i)
{
for (int j = 0;j < size;++j)
cout << x[i][j] << " ";
cout << endl;
}