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

Исправить ошибку (умножение двух матриц) - C++

Восстановить пароль Регистрация
 
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
21.01.2013, 01:45     Исправить ошибку (умножение двух матриц) #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
#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
    SetConsoleOutputCP(1251);
const int s = 2;
int a1[s][s], a2[s][s], a3[s][s] = {0};
cout << "Запоните первый мaссив:\n";
for(int i = 0; i < s; i++)
{
for(int j = 0; j < s; j++)
{
cout << "a1[" << i << "][" << j << "] = ";
cin >> a1[i][j];
}
}
 
cout << "Запоните второй мaссив:\n";
for(int i = 0; i < s; i++)
{
for(int j = 0; j < s; j++)
{
cout << "a2[" << i << "][" << j << "] = ";
cin >> a2[i][j];
}
}
 
    cout << endl << "Результат" << endl << endl;
    
    for(int i=0;i<s;i++)
    {
        for(int j=0;j<s;j++)
        {
            s[i][j]=0;
    for(int k=0;k<s;k++)
        a3[i][j]+=a1[i][k]*a3[k][j];
    //Вывод значения
    cout<<a3[i][j]<<" ";
        }
        cout<<endl;
    }
подчеркивает в строчке s[i][j]=0; выделяется i
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
21.01.2013, 02:12     Исправить ошибку (умножение двух матриц) #2
во первых s это переменная а не массив , вовторых зачет ты ее обнуляешь,обнуляют массивы или переменные для того что бы занести туда результат (сумму,произведение и т.д) так что обнулять нужно массив под номером
C++
1
a3[i][j]=0;
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
21.01.2013, 02:24  [ТС]     Исправить ошибку (умножение двух матриц) #3
Цитата Сообщение от Евгений89 Посмотреть сообщение
во первых s это переменная а не массив , вовторых зачет ты ее обнуляешь,обнуляют массивы или переменные для того что бы занести туда результат (сумму,произведение и т.д) так что обнулять нужно массив под номером
C++
1
a3[i][j]=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
#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
SetConsoleOutputCP(1251);
const int s = 2;
int a1[s][s], a2[s][s], a3[s][s] = {0};
cout << "Запоните первый мaссив:\n";
for(int i = 0; i < s; i++)
{
for(int j = 0; j < s; j++)
{
cout << "a1[" << i << "][" << j << "] = ";
cin >> a1[i][j];
}
}
 
cout << "Запоните второй мaссив:\n";
for(int i = 0; i < s; i++)
{
for(int j = 0; j < s; j++)
{
cout << "a2[" << i << "][" << j << "] = ";
cin >> a2[i][j];
}
}
 
cout << endl << "Результат" << endl << endl;
 
for(int i=0;i<s;i++)
{
for(int j=0;j<s;j++)
{
a3[i][j]=0;
for(int k=0;k<s;k++)
a3[i][j]+=a1[i][k]*a3[k][j];
 
 
for(int i = 0; i < s; i++)
{
 
cout << i << ":\t"; 
 
for(int j = 0; j < s; j++)
{
cout << a3[j][i] << "\t";
 
}
 }


все равно ошибку выдает((
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
21.01.2013, 02:46     Исправить ошибку (умножение двух матриц) #4
в твоем коде куча ошибок , бери мой код

Добавлено через 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
// Умножение квадратных матриц.cpp: главный файл проекта.
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main(){ //размер матриц
    const int N=3;
    //индексные переменные
    int i,j,k;
    //первая матрица
    double A[N][N];
    //вторая матрица
    double B[N][N];
    //Третья матрица
    double C[N][N];
    //Ввод (построчный) первой матрицы
    cout<<"Matrix A: \n";
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            cin>>A[i][j];
    //Ввод (построчный) 2 матрицы
    cout<<"Matrix B: \n";
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            cin>>B[i][j];
    //Вычисление произведений матриц
    cout<<"Matrix C=AB: \n";
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            C[i][j]=0;
    for(k=0;k<N;k++)
        C[i][j]+=A[i][k]*B[k][j];
    //Вывод значения
    cout<<C[i][j]<<" ";
        }
        cout<<endl;
    }
    getch();
 
}
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
21.01.2013, 03:25  [ТС]     Исправить ошибку (умножение двух матриц) #5
все) извени что надоедал) спасибо) разобрался)
Yandex
Объявления
21.01.2013, 03:25     Исправить ошибку (умножение двух матриц)
Ответ Создать тему
Опции темы

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