Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Умножение матриц, Ошибки с определение типа int** 
V
    Опции темы
Larrr
Дата 7.11.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 29.1.2006
Где: Прага

Репутация: нет
Всего: 2



Уважаемые, практикуюсь на простом умножении матриц. Код не компилируется и выдает ошибки, которые я пока что ввиду некоторого недостатка опыта решить не в состоянии. Поэтому прошу помощи зала smile.

Код


#include <stdio.h>

int** mmult(int** m1, int **m2, int n, int m, int k) {
  int **result = new int[n][k];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < k; j++) {
      result[i][j] = 0;
      for (int u = 0; u < m; u++) {
        result[i][j] += m1[i][u]*m2[u][j];
      }
    }
  }
  return result;
}

int main() {
  int** m1 = new int[][] {{1,2}, {3,4}};
  int** m2 = new int[][] {{5,6}, {7,8}};

  int** res = mmult(m1, m2, 2,2,2);
  // тут матрица выводится в консоль
}



Ошибки:

1) 4: error: ‘k’ cannot appear in a constant-expression . Откуда взялась константа??
2) 17: error: expected primary-expression before ‘]’ token
    17: error: expected primary-expression before ‘]’ token
    17: error: expected ‘,’ or ‘;’ before ‘{’ token
    тут я подозреваю просто неправильно определен двумерный массив. Как правильно?

Заранее спасибо за советы! smile


PM MAIL WWW ICQ   Вверх
ller
Дата 8.11.2009, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



Код

int **result = new int[n][k];
 
Это не правильно.
Надо так
Код

*result = new *int[n];

for(int i=0;i<k;i++)
   result[i] = new int[k];


Это сообщение отредактировал(а) ller - 8.11.2009, 00:44
PM MAIL   Вверх
zim22
Дата 8.11.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(ller @  7.11.2009,  23:44 Найти цитируемый пост)
Это не правильно.
Надо так
*result = new *int[n];

Это не правильно.
Надо так
Код

int **result = new int*[n];



Это сообщение отредактировал(а) zim22 - 8.11.2009, 11:21


--------------------
PM MAIL   Вверх
ller
Дата 8.11.2009, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



zim22, спасибо за поправку.
Код

double **matrix;

matrix=new double*[my];

for(i=0;i<my;i++)
    matrix[i] = new double[mx];


а у меня так работает.

Писал пост так по памяти. А я давно не програмировал.. Сечас только вспоминаю, вот и ошибся

Это сообщение отредактировал(а) ller - 8.11.2009, 12:26
PM MAIL   Вверх
Larrr
Дата 8.11.2009, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 29.1.2006
Где: Прага

Репутация: нет
Всего: 2



Работает! Спасибо!  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0686 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.