Форум программистов, компьютерный форум CyberForum.ru

Умножение матриц. Проверка Ошибок. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что делать если нет функции Tools http://www.cyberforum.ru/cpp-beginners/thread386250.html
А у меня нет функции Tool что делать?????
C++ Строки Помогите найти ошибку. я как-то неправильно определяю длину строки. И еще пару ошибок непонятных. #include <iostream> #include <conio.h> #include <string> using namespace std; void stroki(string s1, string s2=" ") {if (s2=" ") {int ds1=s1.size; cout<<"Lenght="<<ds1;} else{ if (s1>s2) {cout<<"The first string longer then the second";} http://www.cyberforum.ru/cpp-beginners/thread386245.html
Разобраться в некоректности программы!(англо-русский словарь лин. списком) C++
Здравствуйте,помогите пожалуйста с программой,требуется написать программу для русско-английского словаря,читать слова из текстового файла и хранить с помощью лин. списка. Написал код,компилится,а вот не работает как задумывалось,где-то ошибка с памятью или ещё в чём-то,подозрения на функцию CreateLinSpis #include<iostream> #include<fstream> #include <windows.h> struct LE { char text;...
C++ Разобраться с кодом!
Помогите разобраться с кодом, так как си было давно, а щас вот вспоминаю. Не могу идентифицировать некоторые функции, да и ваще чё происходит по строкам, кому не сложно оставьте коменты на код) буду признателен! а так ваще мне соль тут понятна (поиск файлов с директории определённого формата, запись в структуру) ) std::vector<std::string> vFiles; typedef struct _BASE_RECORD { char...
C++ Софтварный замер напряжения http://www.cyberforum.ru/cpp-beginners/thread386203.html
Здравствуйте. Прошу помочь с одной несколько странной проблемой. Поискал в интернетах - ничего толком не увидел. Есть задача - сделать генератор случайного ключа для алгоритма шифрования. Делать на основе математической функции не хочется, решил попытаться реализовать замер напряжений с датчиков на мат.плате и на основе этих чисел уже делать ключ. Вопрос: если ли для С/С++ библиотеки, с помощью...
C++ Идея тренажера на составление выражений на языке C/C++ Здравствуйте, форумчане! Затрудняюсь с выбором раздела форума, где разместить свой вопрос, пусть будет здесь. Возникла необходимость придумать некое задание, которое бы проверяло уровень знаний тестируемого на предмет понимания и составления выражений на языке С/С++ с использованием массивов и, возможно, структур. Также нужно придумать варианты возможных подсказок, в случае, если у тестируемого... подробнее

Показать сообщение отдельно
amor1k
Студент
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
18.11.2011, 00:47     Умножение матриц. Проверка Ошибок.
C++
1
int a[rd1][st1];
ошибка! так нельзя выделять память под массив.
C++
1
int C[j][t];
не смог понять почему именно такой размер, но все равно не правильно! j, t должны быть константами

C++
1
for (int i=1; i<=rd1; i++)
нумерация в массиве всегда начинается с нуля, и поэтому 'i < rd1'! если только нужно с отдельного элемента.

Добавлено через 1 минуту
в итоге ваш код выглядит примерно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <conio.h>
using namespace std;
 
 
int main() {
      int i=1,j=1,k=1,l=1;
      int rd1 , st1 , rd2 , st2 ;
      char ch;
      // ввод расширения первой матрицы.
      cout << "Vveditb rozmirnistb pershoi Matruci: ";
      cin >> rd1;
      cin >> st1;
      // ввод расширения 2 матрицы.
      cout << "Vveditb rozmirnistb dryhoi matruci: ";
      cin >> rd2;
      cin >> st2;
      // выход при не соответствии.  
      if (st1 != rd2) {
            cout << "\nMatruc9 ne ob4usljuets9!";
            getch();
            return 0;
      }
      // ввод элементов матриц.
      int **a = new int *[rd1];
      for(int i = 0; i < st1; i++)
          a[i] = new int [st1];
      for (i=0; i<rd1; i++){
            for (j=0; j<st1; j++){
                  cout << "vveditb element a " << i << "_" << j << " = " << endl;
                  cin >> a[i][j];
                  }
            };
      int **b = new int *[rd2];
      for(int i = 0; i < st1; i++)
          a[i] = new int [st2];
      for (k=0; k<rd2; k++){
            for (l=0; l<st2; l++){
                  cout << "vveditb element b " << k << "_" << l << " = " << endl;
                  cin >> b[k][l];
                  }
            };
      
      cout << endl;
// умножение.
int t=0,z;
int C[20][20];
for (int j=0; j<rd2; j++){
    while (t<st1){
          for (int i=0; i<st1; i++){
              z = a[t][i] * b[i][t] + z;
              }
            C[j][t] = z;
            t++;
            }
            t=0;
      }
      
// вывод результата
i=1;
j=1;
for (int i=1; i<=rd1; i++){
      for (int j=1; j<=st2; j++){
            cout << C[i][j];
            }
      cout << endl;
      }
system("PAUSE");
return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru