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

Найти 3 наибольших элемента матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять значения переменных A и В, не пользуясь другими переменными http://www.cyberforum.ru/cpp-beginners/thread669521.html
Доброго времени суток! Помогите плз сделать эти задания на с++ в Builder XE 2 1. Поменять значения переменных A и В, не пользуясь другими переменными. (10 баллов)
C++ Переоформить структуру в класс Есть один код(работающий код), в котором структуру нужно преобразовать в класс, очень рассчитываю на вас : #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; #define BUFFER_LENGTH 81 http://www.cyberforum.ru/cpp-beginners/thread669520.html
C++ Вывод чисел, стоящих на четных местах, в десятичной с.с., а чисел, стоящие на нечетных местах, как вещественных с одним знаком после запятой
В файле a.txt задано 10 целых чисел в восьмеричной системе счисления. Выведите числа, стоящие на четных местах в десятичной системе счисления, а числа, стоящие на нечетных местах как вещественные с одним знаком после запятой. 23 16 3 81 16 19 84 44 67 89 - содержимое a.txt #include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <clocale> using namespace...
C++ Сортировка массива методом пузырька в несколько потоков
Как ето зделать . Программа может работать и не всегда корректно, мне главное чтобы посмотреть как это происходит ...
C++ Раскидывание файлов по месяцам http://www.cyberforum.ru/cpp-beginners/thread669482.html
Всем доброго времени суток, прошу написать программу которая из 1 папки с находящимися в ней файлами (в именах файлов написаны даты) рассортирует эти файлы по месяцам попутно создавая папки месяца. прим. есть файлы допустим за июнь июль сентябрь в одной папке, программа запускается и создает еще 3 папки( июнь июль сентябрь ) и раскидывает файлы соответственно. З.Ы. Прошу не надо ответов...
C++ missing function header (old-style formal list?) #include <stdio.h> #include <conio.h> #include <math.h> int main(); { unsignet short int (R1,R2); подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2012, 21:36     Найти 3 наибольших элемента матрицы
Если максимальные элементы должны быть попарно различны, например в 1, 2, 2, 3 три максимальных элемента это 1, 2, 3, то так

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<iostream>
const int N = 3;
 
void Max(int *a, int n, int &max1, int &max2, int &max3)
{
   int i, min;
   for(i = 1, min = a[0]; i < n; i++)
      if (a[i] < min)
         min = a[i];
   max1 = max2 = max3 = min;
   for(i = 0; i < n; i++)
      if (a[i] > max1)
      {
          max3 = max2;
          max2 = max1;
          max1 = a[i];
      }
      else if (a[i] < max1 && a[i] > max2)
      {
          max3 = max2;
          max2 = a[i];
      }
      else if (a[i] < max2 && a[i] > max3)
         max3 = a[i];
 
}
 
int main()
{
   int max1, max2, max3, a[N][N] = {{1,2,3}, {4,5,6}, {1,4,5}};
   Max(*a, N*N, max1, max2, max3);
   std::cout << max3 << "\n";
   std::cout << max2 << "\n";
   std::cout << max1 << "\n";
   return 0;
}
А если могут повторяться ( в том примере: 2, 2,3), то

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
#include<iostream>
 
const int N = 3;
 
void Max(int *a, int n, int &max1, int &max2, int &max3)
{
   int i;
   max1 = max2 = max3 = a[0];
   for(i = 0; i < n; i++)
      if (a[i] >= max1)
      {
          max3 = max2;
          max2 = max1;
          max1 = a[i];
      }
      else if (a[i] < max1 && a[i] >= max2)
      {
          max3 = max2;
          max2 = a[i];
      }
      else if (a[i] < max2 && a[i] > max3)
         max3 = a[i];
 
}
 
int main()
{
   int max1, max2, max3, a[N][N] = {{1,2,3}, {4,5,6}, {1,4,5}};
   Max(*a, N*N, max1, max2, max3);
   std::cout << max3 << "\n";
   std::cout << max2 << "\n";
   std::cout << max1 << "\n";
   return 0;
}
 
Текущее время: 17:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru