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

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

Войти
Регистрация
Восстановить пароль
 
bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
#1

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

29.01.2012, 14:36. Просмотров 761. Ответов 5
Метки нет (Все метки)

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.Что делать?Где я ошибся в алгоритме?Все уже проверил
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 14:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу написать программу перемножения матриц (C++):

Написать процедуру перемножения матриц. - C++
ребят нужна помощь Задачи по программированию. Задача решается на двух языках. Задача 8. Написать процедуру перемножения...

Переделать программу перемножения матриц с использованием указателей - C++
Помогите переделать эту программу чтобы были указатели!! Вот задание: Дано две матрицы А и В, найти -АВ #include &lt;iostream&gt; ...

Оператор перемножения матриц - C++
не работает оператор* двух матриц, никак не могу понять как сделать так, чтобы в операторе была уже одна матрица, а вторую мы бы...

Функция перемножения матриц. - C++
Функция mult, прошу помощи, ибо не пойму в чем ошибка. #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #include &lt;cstdlib&gt; ...

Программа перемножения 2 матриц - C++
ДОброго времени суток прошу помочь написать программу перемножения 2 матриц,матрицы вводятся с клавиатуры.

Ошибка в коде перемножения матриц - C++
Ребята , здравствуйте, нужна nомощь, наnисал код nеремножений 2-х матрицы. Но nри выводе матриц nишет какие то большие цыфры. Я не могу...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,132
29.01.2012, 14:52 #2
C++
1
2
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
Выход за границы массива. Нехорошо.
0
bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
29.01.2012, 14:54  [ТС] #3
dimcoder, так массивы в C++ с нуля же нумеруются?
0
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,132
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++ с нуля же нумеруются?
вот вот
1
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.01.2012, 14:58 #5
bretba, да, но элементов там от этого больше не становится. Задали 4 - получили 4. От нуля до 3 включительно.
1
bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
29.01.2012, 14:58  [ТС] #6
все понял)спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2012, 14:58
Привет! Вот еще темы с ответами:

Перемножения матриц с OpenMP дольше чем... - C++
Здравствуйте! Написал 2 программы перемножения матриц, одну с использованием OpenMP, другую - просто. 2 матрицы 1000х1000 с...

Оптимизация алгоритма перемножения двух матриц - C++
Здравствуйте, нужна помощь. Есть 2 матрицы, нужно их перемножить так, что бы алгоритм выполнялся со скорость O(n) и O(log(n))

Массив: перемножения двух матриц A,B размерности n*n - C++
Разработать программу перемножения двух матриц A,B размерности n*n. Все матрицы размещаются в оперативной памяти динамически с помощью...

Ошибка в алгоритме перемножения двух матриц - C++
Ошибка в алгоритме произведения двух матриц. Я так понял, что где-то выходит за границы массивов. private: void com(int size, int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.01.2012, 14:58
Ответ Создать тему
Опции темы

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