3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
1

умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы

14.11.2011, 16:34. Показов 1310. Ответов 6
Метки нет (Все метки)

получить новую матрицу умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы..
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    int A[6][6];
    int B[6][6];
    int C[6][6];
    int i,j,max,n,l;
n=6;
max=0;
srand((unsigned)time(NULL));
for( j=0; j<n; j++)
for( i=0; i<n; i++)
{A[j][i]=rand()%10;
 B[j][i]=rand()%10;
}
//
  printf("isxodnaj matrica 1");
  for( j=0; j<n;j++)
  {
  printf("\n");
  for( i=0; i<n; i++)
  printf(" %2i",A[j][i]);
  }
//
      printf("\n");
      printf("\n");
      printf("isxodnaj matrica 2");
      for( j=0; j<n;j++)
      {
      printf("\n");
      for( i=0; i<n; i++)
      printf(" %2i",B[j][i]);
      }
 
/* в двух циклах гуляем по массивам */
for( j=0;j<n;j++){
    for( i=0;i<n;i++){
 
        /* находим максимальное в строке во второй матрице */
        for( l=0;l<n;l++){
            if(max>B[j][l]);
                max = B[j][l];
        }
 
        /* получаем новую матрицу */
        C[j][i] = A[j][i] * max;
 
    }
}
i=0;
j=0;
      printf("\n");
      printf("\n");
      printf("result");
      for( j=0; j<n;j++)
      {
      printf("\n");
      for( i=0; i<n; i++)
      printf(" %2i",C[j][i]);
      }
 
 
}
Проблема в том что умножает не на максимальный элемент а на последний во второй матрицы..
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2011, 16:34
Ответы с готовыми решениями:

умножить элемент каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы
Даны две действительные квадратные матрици порядка n. Получить новую матрицу: умножением элементов...

Получить новую матрицу умножением элементов первой матрицы на наибольшее из значений элементов соответствующий строки второй матрицы
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу умножением элементов...

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки первой матрицы на наибольш
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением...

Получить новую матрицу умножением элементов каждой строки первой матрицы
Даны две действительные квадратные матрицы порядка n.Получить новую матрицу умножением элементов...

6
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
14.11.2011, 16:40 2
if(max < B[j][l]);

мож вот так?

Добавлено через 2 минуты
C[j][i] = A[j][i] * max;
и после этого надо max вернуть в исходное состояние..
0
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
14.11.2011, 16:42  [ТС] 3
Цитата Сообщение от Yakoot Посмотреть сообщение
if(max < B[j][l]);

мож вот так?
да вы правы..однако все равно умножает строку на последний элемент строки второй матрицы

Добавлено через 1 минуту
уже сделал..не помогает
0
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
14.11.2011, 16:46 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
for( int i= 0; i < n; i++)
{
    max = 0;
    for (int j = 0; j < n; j++)
    {
        if (B[i][j] > max)
            max = B[i][j];
        
    }
    for (int j = 0; j < n; j++)
        A[i][j] *= max;
}
на коленке писал, хз работает нет
0
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
14.11.2011, 16:48  [ТС] 5
и не будет..здесь умножение всей марицы на макс элемент.
C++
1
2
3
4
5
/* находим максимальное в строке во второй матрице */
        for( l=0;l<n;l++){
            if(max>B[j][l]);
                max = B[j][l];
        }
надо чтоб этот цикл сразу пробегал
а до этого цикл обычно считал
0
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
14.11.2011, 16:57 6
проверил свой вариант.. работает..

Добавлено через 4 минуты
Цитата Сообщение от Yakoot Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
for( int i= 0; i < n; i++)
{
    max = 0;
    for (int j = 0; j < n; j++)
    {
        if (B[i][j] > max)
            max = B[i][j];
        
    }
    for (int j = 0; j < n; j++)
        A[i][j] *= max;
}
вот так делай
1
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
14.11.2011, 17:01  [ТС] 7
все супер...спасиб
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2011, 17:01
Помогаю со студенческими работами здесь

Получить матрицу умножением элементов каждой строки первой матрицы на максимум соответствующей строки второй
Даны две действительные матрицы порядка (nxn). Получить новую матрицу умножением элементов...

Получить новую матрицу умножением элементов каждого столбца первой матрицы на наименьшее из значений элементов соответствующей строки второй матрицы
Даны 2 действительные матрицы порядка n.Получить новую матрицу умножением элементов каждого столбца...

Получить новую матрицу умножением элементов каждой строки первой и второй матрицы
всем привет!! помогите с решением задачи. Ну первый пункт понятно, а вот второй пункт: 1.Даны две...

Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений второй
Даны две действительные квадратные матрицы размером nxn. Получить новую матрицу умножением...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru