Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
2 / 2 / 0
Регистрация: 10.10.2013
Сообщений: 43
1

Найти произведение двух матриц

16.09.2014, 20:53. Показов 4029. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. У меня возникла проблема с реализацией данной задачи:
Кликните здесь для просмотра всего текста
Найти произведение двух матриц размеров m*n и n*k (Матрица хранится в одномерном массиве по строкам).

Как реализовать умножение и матриц и вывод результата на экран?

Ниже код с ужасным выводом :
Кликните здесь для просмотра всего текста

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int main()
{
    int N,M;
    printf ("Vvedite N=");scanf("%d",&N);
    printf ("Vvedite M=");scanf("%d",&M);
    int a[N*M],d,min;
 
printf ("\nVvedite massiv:\n");
for(int i=0;i<(N*M);i++)
{
    scanf("%d",&a[i]);
}
 
    
    
  printf ("\n");
  for(int i=0;i<N;i++)
{
    for(int j=(0+i);j<(M+i);j++){
        
    printf ("%7d",a[i]);
    if (j==(M-1)){
    printf ("\n");}
    if (j==(2*M-1)){
    printf ("\n");}}
    
}
 printf ("\n");
return 0;
getch ();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2014, 20:53
Ответы с готовыми решениями:

Найти произведение двух симметричных матриц
Найти произведение двух симметричных матриц и . Матри- цы хранятся в одномерных массивах, где...

Получить произведение двух матриц
Даны две матрицы. Получить их произведение Добавлено через 39 минут ф-ция перемножения...

Вычислить произведение двух матриц одна из которых вводится, а вторая задается формулой
Дана квадратная матрица А порядка n. Получить матрицу АВ (I,j,…,n); элементы матрицы В вычисляются...

Найти произведение матриц A и B
Найти C- произведение матриц A и B. Матрицы описать как одномерные массивы

5
1 / 1 / 0
Регистрация: 01.03.2014
Сообщений: 312
16.09.2014, 20:57 2
Церез цикл.

Добавлено через 1 минуту
Если не ошибаюсь, математику пропускал, нужно первый умножать на первый, второй на второй и так далее?
0
2 / 2 / 0
Регистрация: 10.10.2013
Сообщений: 43
16.09.2014, 21:09  [ТС] 4
coder2, rikimaru2013, Я понимаю, что через цикл. И как умножать я знаю (c12=a11*b12+a12*b22). Вопрос , как именно реализовать данный цикл, без кривого вывода, с нормальным перемножением матриц, используя только одномерные массивы?
0
1 / 1 / 0
Регистрация: 01.03.2014
Сообщений: 312
16.09.2014, 21:13 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
#include <string>
#include <iostream>
#include <conio.h>
#include <fstream>
#include <clocale>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    const int p=10;
    int i;
    char A[p];
    char B[p];
    char O[p];
    for(i=0;i>10;i++)
    {
        A[i]=rand();
        B[i]=rand();
        O[i]=A[i] + B [i];
        cout<<O[i],' ';
    }
    return 0;
}
 
Примерно так
0
2 / 2 / 0
Регистрация: 10.10.2013
Сообщений: 43
16.09.2014, 21:58  [ТС] 6
coder2, В вашем примере идет простое сложение

UPD:
Вот я настроил вывод, но умножение по прежнему хромает:
Кликните здесь для просмотра всего текста
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
#include <iostream.h>
 
using namespace std;
 
int main()
{
    int N,M,K;
    cout<<"Vvedite N=";cin>>N;
    cout<<"Vvedite M=";cin>>M;
    cout<<"Vvedite K=";cin>>K;
    int a[N*M],b[M*K],c[N*K],d,min,i,j,k=0;
 
cout<<"\nVvedite massiv a:\n";
for(i=0;i<(N*M);i++)
{
    cin>>a[i];
}
cout<<"\nVvedite massiv b:\n";
for(i=0;i<(K*M);i++)
{
    cin>>b[i];
}
    
    i=0;
  printf ("\n a[N*M]\n");
  
  while (i!=(M*N))
  {
    cout<<"\t"<<a[i];
    i++;
    if(i%M == 0){
        cout<<"\n";
      }
  }
   printf ("\n b[M*K]\n");
  i=0;
  while (i!=(M*K))
  {
    cout<<"\t"<<b[i];
    i++;
    if(i%K == 0){
        cout<<"\n";
      }
  }
  i=0;j=0;
  while (i!=(N*M))
     while (j!=(M*K))
    {
        c[k++]+=a[i]*b[j];
        i++;
        j+=2;
        if (i==(M-1))
        { i=M; }
        if (j==(M-1))
        { j=1; }
    }
    printf ("\n c[N*K]\n");
    i=0;
  while (i!=(N*K))
  {
    cout<<"\t"<<c[i];
    i++;
    if(i%K == 0){
        cout<<"\n";
      }
  }
 printf ("\n");
return 0;
}
0
16.09.2014, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2014, 21:58
Помогаю со студенческими работами здесь

Найти произведение двух наибольших и двух наименьших элементов массива
Используя программу ранжирования, найти произведение двух наибольших и двух наименьших элементов...

Найти сумму двух матриц
Помогите, пожалуйста написать программу найти сумму двух матриц в си (С). Размеры массива вводить с...

Найти максимальный элемент двух заданных матриц
Ввести два двумерных массива из 8 вещественных чисел. Найти максимальный эл и напечатать его номер....

Найти сумму двух сильно разреженных матриц
Найти сумму двух сильно разреженных матриц A(m,n) и B(m,n), хранящихся в упакованном виде....

Найти произведение двух наименьших из трех различных чисел
Составить программу нахождения произведения двух наименьших из трех различных чисел

Найти произведение нечетных цифр двух чисел m и n (Pascal -> C)
Перевести код с Pascal в C. Нужно найти произведение нечетных цифр двух чисел m и n.var n, s, t,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru