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

Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим - C++

Восстановить пароль Регистрация
 
ego
 Аватар для ego
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 10
21.12.2011, 21:20     Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим #1
Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максимальное значение.

в программе 3 массива: один перебирает матрицу по столбцам, а два других по строкам попарно. Помогите пожалуйста с расставлением скобок(скорее всего в них ошибка). А то программа выдаёт только 4 значения, а должна 10

собственно и сама программа:
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
const int M=5;
const int N=4;
 
int main()
{ int i, j, i1, P[M][N], X, num1, num2, Xmax=-1000;
  for(i=0; i<M; i++)
  for(j=0; j<N; j++)
  P[i][j]=rand()%8;
  printf("Matrix P\n");
  for (i=0; i<M; i++){ 
      for (j=0; j<N; j++)
          printf("%4d", P[i][j]);
          printf("\n");
    }
     for(j=0; j<N; j++)
     {
     for(i=0; i<M-1; i++)
              for(i1=i+1; i1<M; i1++)
                          X+=P[i][j]*P[i1][j];     
                          printf ("\n\n%4d", X);             
     }
     if (X>Xmax) {Xmax=X; num1=i; num2=i1;}
     printf ("\n\n%d   %d   %d", X, num1, num2);
getch();
return 0;
}
 Комментарий модератора 
Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос ответят.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 21:20     Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим
Посмотрите здесь:

Определить номера строк прямоугольной матрицы, содержащие только отрицательные элементы. C++
C++ Рассматривая матрицу как вектор строк, упорядочить ее по количеству нечетных элементов в каждой строке
C++ Напечатать номера строк и столбца прямоугольной матрицы, на пересечении которых стоит максимальный элемент
C++ Напечатать номера строк и столбца прямоугольной матрицы, на пересечении которых стоит минимальный элемент.
ScalarProduct для вычисления скалярного произведения двух векторов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 21:46     Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим #2
Предполагаю, строки 25 и 26 необходимо поменять местами.
ego
 Аватар для ego
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 10
21.12.2011, 21:50  [ТС]     Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим #3
поменял, всё равно 4 значения выдаёт
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 22:12     Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим #4
Не так вы делаете
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int summa (int mt[][COLUMNS], int i)
{
    int sum = 0;
    int j;
    
    for ( j = 0 ; j < COLUMNS ; ++j )
        sum += mt[i][j];
        
    return sum;
}
 
// считаем
max = summa (matr, 0);
for ( i = 1 ; i < ROWS ; ++i )
    if ( summa (matr, i) > max )
        max = summa (matr, i);
 
for ( i = 1 ; i < ROWS ; ++i )
    if ( summa (matr, i) == max )
        printf ("\n %d", i);
Добавлено через 10 минут
Под "скалярным произведение" я понимал обычное произведение элементов строки матрицы.
Yandex
Объявления
21.12.2011, 22:12     Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим
Ответ Создать тему
Опции темы

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