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

Не могу написать программу перемножения матриц - C++

Восстановить пароль Регистрация
 
bretba
 Аватар для bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
29.01.2012, 14:36     Не могу написать программу перемножения матриц #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
#include <iostream>
#include <conio.h>
using namespace std;
int i,j;
void vvod(int X[4][4])
{
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
    X[i][j]=rand() % 10;
}
void vblvod(int X[4][4])
{
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
    cout<<X[i][j]<<"  ";
cout<<"\n\n";
}
}
void main()
{
    int A[4][4],B[4][4],C[4][4];
    int k;
vvod(A);
vvod(B);
cout<<"matrica A\n";
vblvod(A);
cout<<"matrica B\n";
vblvod(B);
cout<<"matrica C\n";
 
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{
      C[i][j] = 0;
for(k=0;k<=4;k++)
C[i][j]+=A[i][k] *B[k][j];
}
 
vblvod(C);
 
_getch();
}
Вот мой код.Все выводится правильно,кроме последнего столбца матрицы C.Что делать?Где я ошибся в алгоритме?Все уже проверил
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
29.01.2012, 14:52     Не могу написать программу перемножения матриц #2
C++
1
2
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
Выход за границы массива. Нехорошо.
bretba
 Аватар для bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
29.01.2012, 14:54  [ТС]     Не могу написать программу перемножения матриц #3
dimcoder, так массивы в C++ с нуля же нумеруются?
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
29.01.2012, 14:57     Не могу написать программу перемножения матриц #4
Цитата Сообщение от bretba Посмотреть сообщение
перемножения матриц
C++
1
2
3
4
5
6
7
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{
      C[i][j] = 0;
for(k=0;k<=4;k++)
C[i][j]+=A[i][k] *B[k][j];
}
Почему не так:
C++
1
2
3
for (int i = 0; i < 4; i++)
   for (int j = 0; j < 4; j++)
   c[i][j] = a[i][j] * b[i][j]
Добавлено через 29 секунд
Цитата Сообщение от bretba Посмотреть сообщение
так массивы в C++ с нуля же нумеруются?
вот вот
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.01.2012, 14:58     Не могу написать программу перемножения матриц #5
bretba, да, но элементов там от этого больше не становится. Задали 4 - получили 4. От нуля до 3 включительно.
bretba
 Аватар для bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
29.01.2012, 14:58  [ТС]     Не могу написать программу перемножения матриц #6
все понял)спасибо
Yandex
Объявления
29.01.2012, 14:58     Не могу написать программу перемножения матриц
Ответ Создать тему
Опции темы

Текущее время: 15:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru