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

Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
23.02.2013, 14:20     Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ #1
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2013, 14:20     Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++
Посмотрите здесь:

C++ Написать функцию, которая по двум заданным одномерным массивам вычисляет двумерный массив и возвращает его максимальный элемент
C++ Сделать функцию, которая по порядковому номеру числа Фибоначчи возвращает его значение
C++ Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++
C++ Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших элементов(сортировку не использовать), указателями
Определить номер строки и столбца максимального элемента прямоугольной матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
23.02.2013, 19:47     Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::pair<int, int> GetMax(int** array, int col, int row)
{
   int max_col = 0;
   int max_row = 0;
 
   for (int i = 0; i < row; ++i)
   {
      for (int j = 0; j < col; ++j)
      {
         if (array[i][j] > array[max_row][max_col])
         {
            max_row = i;
            max_col = j;
         }
      }
   }
 
   return std::pair<int, int>(max_col, max_row);
}
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
23.02.2013, 21:16  [ТС]     Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ #3
Цитата Сообщение от anmartex Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::pair<int, int> GetMax(int** array, int col, int row)
{
   int max_col = 0;
   int max_row = 0;
 
   for (int i = 0; i < row; ++i)
   {
      for (int j = 0; j < col; ++j)
      {
         if (array[i][j] > array[max_row][max_col])
         {
            max_row = i;
            max_col = j;
         }
      }
   }
 
   return std::pair<int, int>(max_col, max_row);
}
спасибо) а можешь полностью сделать?
я не пойму как..

Добавлено через 16 минут
Цитата Сообщение от anmartex Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::pair<int, int> GetMax(int** array, int col, int row)
{
   int max_col = 0;
   int max_row = 0;
 
   for (int i = 0; i < row; ++i)
   {
      for (int j = 0; j < col; ++j)
      {
         if (array[i][j] > array[max_row][max_col])
         {
            max_row = i;
            max_col = j;
         }
      }
   }
 
   return std::pair<int, int>(max_col, max_row);
}
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
#include <iostream>
using namespace std;
pair<int, int> GetMax(int** array, int col, int row);
void main()
{
pair<int, int> GetMax(int** array, int col, int row)
{
   int max_col = 0;
   int max_row = 0;
 
   for (int i = 0; i < row; ++i)
   {
      for (int j = 0; j < col; ++j)
      {
         if (array[i][j] > array[max_row][max_col])
         {
            max_row = i;
            max_col = j;
         }
      }
   }
 
   return pair<int, int>(max_col, max_row);
}
 }
подскажи где у меня здесь ошибка
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
24.02.2013, 09:45     Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ #4
Как-то так:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
struct TPair
{
   unsigned col;
   unsigned row;
};
 
//----------------------------------------------//
int** FillArray(int** array, unsigned col, unsigned row)
{
   for (unsigned i = 0; i < row; ++i)
   {
      for (unsigned j = 0; j < col; ++j)
      {
         array[i][j] = ::rand() % 1000;
      }
   }
 
   return array;
}
//----------------------------------------------//
void PrintArray(int** array, unsigned col, unsigned row)
{
   for (unsigned i = 0; i < row; ++i)
   {
      for (unsigned j = 0; j < col; ++j)
      {
         std::cout << std::setw(4) << array[i][j];
      }
      std::cout << std::endl;
   }
}
//----------------------------------------------//
TPair GetMax(int** array, unsigned col, unsigned row)
{
   TPair max = {0, 0};
 
   for (unsigned i = 0; i < row; ++i)
   {
      for (unsigned j = 0; j < col; ++j)
      {
         if (array[i][j] > array[max.row][max.col])
         {
            max.row = i;
            max.col = j;
         }
      }
   }
 
   return max;
}
//----------------------------------------------//
 
int main()
{
   ::srand(::time(NULL));
   
   unsigned col, row;
   std::cout << "Input size array (columns and rows): ";
   std::cin >> col >> row;
 
   // Выделяем память под массив
   int** array = new int* [row];
   for (unsigned i = 0; i < row; ++i)
   {
      array[i] = new int [col];
   }
 
   FillArray(array, col, row);
   PrintArray(array, col, row);
 
   TPair max = GetMax(array, col, row);
 
   std::cout << "max element [" << max.col+1
             << "," << max.row + 1
             << "] = " << array[max.row][max.col]
             << std::endl;
 
   // Освобождаем память из под массива
   for (unsigned i = 0; i < row; ++i)
   {
      delete [] array[i];
   }
   delete [] array;
 
   ::system("PAUSE");
 
   return 0;
}
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++

Исходник с бинарником: array.7z
Yandex
Объявления
24.02.2013, 09:45     Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++
Ответ Создать тему
Опции темы

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