ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 09.03.2010, 15:19
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
С нами: 9332069

Репутация: 92
По умолчанию

Цитата:
Сообщение от Welemir  
Приветствую ).нужна помощь в следующем:

Написать функцию типа void ,которая перемножает две целочисленные матрицы (z = x*y),используя только адресную арифметику.Объявляется три двумерных массива (int x[m][n], int y[m][n],int z[m][n]).Зачем-то задаются ещё две целочисленные константы(не пойму,для чего).Кто-нибудь может это осилить ? Не догоняю я эти матрицы...линейной алгебры у нас нет.

P.S.: НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ СИМВОЛЫ [].РАЗРЕШЕНА ТОЛЬКО АДРЕСНАЯ АРИФМЕТИКА И УКАЗАТЕЛИ !
http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%BD%D0%BE%D0%B6%D 0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0 %B8%D1%86#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0. B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D0.BC.D0.B0.D1.82.D1. 80.D0.B8.D1.86.D0.B0.D0.BC.D0.B8

Вот ссылка на вики, где написан алгоритм.
Ты не можешь перемножать int x[m][n], int y[m][n]
разве что int x[m][n], int[n][m]. Так как результирующая размерность должна быть [m][m].

Вот код, как примерно обращаться к чему.

PHP код:
#include <QtCore/QCoreApplication>
#include <iostream>
#include <cstdlib>

using namespace std;

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;
    }

    
cout << *(*(x+1)+1) << endl; // x[1][1]
    
cout << *(*(x+4)+4) << endl; // x[4][4]
    
for (int i = 0;i < size;++i)
        
delete[] x[i];
    
delete []x;
    
x = NULL;
    
system("pause");
    return 
0;
} 
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.