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

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

Войти
Регистрация
Восстановить пароль
 
Гость Сема
0 / 0 / 0
Регистрация: 12.11.2007
Сообщений: 1
#1

Найти максимальное расстояние между строками матрицы - C++

15.11.2007, 18:43. Просмотров 1838. Ответов 1
Метки нет (Все метки)

Помогите бедному студенту решить задачку.
Хотя бы сами процедуры, без ввода данных.

Дана матрица {Aij}, i=1..10, j=1..10. Найти максимальное расстояние между строками матрицы. Расстояние Rmn определяется по формуле: |k-l|, где k - № стобца, где расположен максимальный элемент m-ой строки, l - № стобца, где расположен максимальный элемент n-ой строки. Если таких элементов в строке несколько, то взять первый из них.

Вот алгоритм задачи:
1)В первой строке матрицы найти максимальный элемент. Запомнить номер столбца, в котором он находится, напр. - 5.
2)Во второй строке матрицы найти максимальный элемент. Запомнить номер столбца, в котором он находится, напр. - 2.
3)Следуя формуле из условия |k-l|, вычитаем из пяти два, т.е. 5-2=3. Это первое расстояние.
4)Проделать такие же операции для всех возможных комбинация строк, т.е. 1-2, 1-3, 1-4, 2-1, 2-2, и т.д.
5)Из всех расстояний выбрать максимальное.

Зарание спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2007, 18:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти максимальное расстояние между строками матрицы (C++):

Найти максимальное расстояние между точками на плоскости - C++
Даны координаты n точек на плоскости: (X1, Y1), ..., (Xn, Yn) (n ≤ 30). Найти номер пары точек, расстояние между которыми самое большое...

Найти максимальное и среднее расстояние между центральными вершинами неориентированного графа - C++
Здравствуйте. нужно найти максимальное и среднее расстояние между центральными вершинами неориентированного графа. Структура данных-список...

Определить минимальное и максимальное расстояние между функциями - C++
Значения функций f1(x)=3x3+2x2+x+5 и f2(x)=2x3-4x2+2x-5 определены в точках x=x0(hx)xn . Определить минимальное и максимальное расстояние...

Расстояние между двумя множествами точек - это расстояние между наиболее близко расположенными точками этих - C++
1. Расстояние между двумя множествами точек - это расстояние между наиболее близко расположенными точками этих множеств. Найти расстояние...

расстояние между элементами матрицы - C++
Можно лт на С написать программу которая вычисляет расстояние между элементами матрицы ? если да то объясните пожалуйста:)

Задача на рекурсию. Найти кратчайшее расстояние между городами i и j даже если между ними нет прямой дороги - C++
Дана матрица размером NxN с расстояниями между городами при наличии прямой дороги между ними. По вертикали содержаться города откуда...

1
гость
0 / 0 / 0
Регистрация: 17.04.2015
22.11.2007, 17:36 #2
Что-то ты с алгоритмом переборщил, можно в разы проще.
Вот исходный код для твоей задачи (для матрицы 10х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
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int mas[10][10];
int mas2[10];
 
void findDistance(int mas[10][10])
{
  int i,j;
  int max = 0;
  int col = 0;
  for (i = 0; i < 10; i++)
  {
    max = 0;
    for (j = 0; j < 10; j++)
    {
      if (mas[i][j] > max)
      {
        max = mas[i][j];
        col = j;
      }
    }
    mas2[i] = col;
  }
}
 
int main()
{
  int temp, i, j;
 
  srand((unsigned int)time((time_t *)NULL));
 
  for (i = 0; i < 10; i++)
    for (j = 0; j < 10; j++)
      mas[i][j] = rand();
 
  for (i = 0; i < 10; i++)
  {
    for (j = 0; j < 10; j++)
      printf("%5d ", mas[i][j]);
    printf("\n");
  }
  findDistance(mas);
 
  for (i = 0; i < 10; i++)
    printf("%5d", mas2[i]);
 
  printf("\n");
  for(i = 9; i > 0; i--)
    for(j = 0; j < i; j++)
      if(mas2[j] > mas2[j+1])
      {
        temp = mas2[j];
        mas2[j] = mas2[j+1];
        mas2[j+1] = temp;
      }
 
  printf("Max dist = %d\n", mas2[9]-mas2[0]);
  return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2007, 17:36
Привет! Вот еще темы с ответами:

Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили пе - C++
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если...

Найти расстояние между отрезками - C++
Даны координаты точек двух отрезков, найти расстояние между ними.

Найти расстояние между символами с1 и с2 - C++
я смог сделать только что бы подсчитывались все символы в строке, то есть общее количество #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

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


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

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

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