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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
_Evg1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
#1

Умножение матриц - C++

01.03.2014, 16:27. Просмотров 186. Ответов 0
Метки нет (Все метки)

Доброго времени суток!
Проблема заключается в том что при выводе результирующей матрицы программа выводит 0 и зацикливаться
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
        struct matr{
                int **a;
                int m;
                int n;
                };
 
 void vvod(matr &x)
  {
  int i,j;
  SetConsoleCP(1251);      // Г*Г*ñòðîéêè øðèôòГ*
   SetConsoleOutputCP(1251);// Г*Г*ñòðîéêè øðèôòГ*
 
   cout<<"\n Ââåäèòå ðîçðÿäГ*îñòü Г¬Г*òðèöû A:\n" ;
   cout<<"\n";
 cin>>x.m;
 cin>>x.n;
 
 x.a=new int *[x.n];
 for(i=0; i<x.n;i++)
 {
        x.a[i]=new int [x.m];
 }
 cout<<"\n Ââåäèòå åëåìåГ*ГІГ» Г¬Г*òðèöû A:\n";
 cout<<"\n";
 for(i=0;i<x.n;i++)
 { for(j=0;j<x.m;j++)
 
    {
 
    cout<<"A["<<i<<"]["<<j<<"] = ";
      cin>>x.a[i][j];
 
     }
  }
  } ;
  void vuvod_M(matr x)
{
SetConsoleCP(1251);      // Г*Г*ñòðîéêè øðèôòГ*
   SetConsoleOutputCP(1251);// Г*Г*ñòðîéêè øðèôòГ*
 printf("\n");
for (int i=0;i<x.n;i++)
{ for (int j=0;j<x.m;j++)
 
printf("%d ",x.a[i][j]);
printf("\n");
}
 
 
}
 
matr m1(matr &x,matr &y,matr &c)
  {
  int i,j;
  c.n=x.n;
  c.m=c.m;
  SetConsoleCP(1251);      // Г*Г*ñòðîéêè øðèôòГ*
   SetConsoleOutputCP(1251);// Г*Г*ñòðîéêè øðèôòГ*
 
 c.a=new int *[c.n];
 for(i=0; i<c.n;i++)
 {
        c.a[i]=new int [c.m];
 }
  }
 
matr m(matr x,matr y,matr &c)
  {
 
 
  SetConsoleCP(1251);      // Г*Г*ñòðîéêè øðèôòГ*
   SetConsoleOutputCP(1251);// Г*Г*ñòðîéêè øðèôòГ*
 
 
 
for (int i = 0; i < x.n; ++i)
        for (int j = 0; j < y.m; ++j)
         {
int sum = 0;
int n;
for (int k = 0; k < y.n; ++k)
{
sum += x.a[j][k] * y.a[k][j];
c.a[i][j] = sum;
 
}
}
 printf("ГЊГ*òðèöû ïåðåìГ*îæåГ*Г» ");
 }
 
int main(int argc, char* argv[])
{
 matr x;
 matr y;
 matr c;
 
 
int nom;
SetConsoleCP(1251);      // Г*Г*ñòðîéêè øðèôòГ*
   SetConsoleOutputCP(1251);// Г*Г*ñòðîéêè øðèôòГ*
printf(" _________________________________ \n");
printf("|           ГЊГҐГ*Гѕ                  |\n");
printf("| 1. Ââîä Г¬Г*òðèö                  |\n");
printf("| 2. Âèâîä Г*Г* ГҐГЄГ°Г*Г*               |\n");
printf("| 3. ÏðîèçâåäåГ*ГЁГҐ Г¬Г*òðèö          |\n");
printf("| 4. ÐåçóëüòèðóþùГ*Гї Г¬Г*òðèöГ*       |\n");
printf("| 0. Âûõîä                        |\n");
printf("|_________________________________|\n");
while(1)
{ printf("\n Âûáåðèòå ðåæèì ìåГ*Гѕ: ");
scanf(" %d;",&nom);
printf(" \n");
switch(nom)
{
case 1:vvod(x);vvod(y);break;
case 2:vuvod_M(x);vuvod_M(y);break;
case 3:m1(x,y,c);m(x,y,c);break;
case 4:vuvod_M(c);break;
case 0:return 0;
default:printf("Nevirnuy rezhum!");
}
}
getch();
return 0;
}
//---------------------------------------------------------------------------
За ранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2014, 16:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умножение матриц (C++):

Умножение треугольных матриц«Методы обработки разреженных матриц» - C++
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ к элементам свёрнутой матрицы...

Умножение матриц - C++
int **calculation3(int **mat1,int **mat2,int q,int e,int w,int t){ int m,ww=0,x,z; for(x=0;x&lt;q;x++){ for(z=0;z&lt;w;z++){ ww=0;...

Умножение матриц - C++
Вообщем при вводе матриц размером 1х4 или 3х4, получается такое(на картинке), но если вводить матрицы к примеру 4х1 или 4х4, то все окей,...

Умножение матриц - C++
#include &lt;iostream&gt; using namespace std; int main(int argc, const char * argv) { int **C; int n,k; /*...

Умножение матриц - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; // в ней функция time #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using namespace std; void...

Умножение матриц - C++
Помогите пожалуйста написать прогу для умножения матриц с использованием malloc. Юзал обычные проги для умножения, но вот с malloc что то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2014, 16:27
Привет! Вот еще темы с ответами:

Умножение матриц - C++
Доброго всем времени суток! Нужна Ваша помощь. Задали сделать задачку на C++ в консоли - умножение матриц 10 на 10 с помощью...

Умножение матриц - C++
Здравствуйте помогите пожалуйста, не понимаю почему не получается перемножить матрицы. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Умножение матриц - C++
Помогите с умножением матриц создал две идентичные таблицы 3х3 и тепер хочу вывести матрицу этих двух таблиц, но в переменной suma...

Умножение матриц - C++
Мне нужно перемножить матрицы скажите что не провильно,почему она не работает for (int i=0; i&lt; StrToInt(Edit1-&gt;Text);i++) for (int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru