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

Сравнение элементов двумерного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с клавишами стрелка и т.д http://www.cyberforum.ru/cpp-beginners/thread1219092.html
Народ, помогите. Как написать программу типа if("нажата клавиша вверх") { cout << 500; } else if("нажата клавиша вниз") { cout << 600; }
C++ Определить является ли целое число простым Написать функцию для решения следующей задачи. Определить является ли целое число простым. Параметры функции – целое число. В обязательной программе (int main()), используя функцию, найти количество простых чисел в массиве A(10×5). #include <iostream> #include <fstream> #include <iomanip> #include <stdlib.h> #include<math.h> using namespace std; void fun(int x,int &r) http://www.cyberforum.ru/cpp-beginners/thread1219027.html
Найти ошибку. В файл занести 100 записей: ФИО, адрес, возраст, рост, вес C++
Написать программу для решения следующей задачи. В файл занести 100 записей, содержащих следующую информацию: ФИО, адрес, возраст, рост, вес. #include <iostream> #include <fstream> #include <iomanip> #include <stdlib.h> #include <stdio.h> using namespace std; int main() {
C++ Сумма цифр введенного пользователем числа
Пользователь вводит с клавиатуры натуральное число, проверить корректность ввода, вычислить и вывести на экран сумму цифр введённого пользователем числа. Если можно код на С++ и на паскале, ибо только учусь.
C++ Malloc для size_t http://www.cyberforum.ru/cpp-beginners/thread1218987.html
структура вида struct BufferParam { double* pBuffer; COLORREF color; size_t size; };
C++ Указатель на безразмерный массив Есть такое понятие как "безразмерный массив" или "массив неизвестного размера". В голых сях можно например указателю такого типа присваивать адрес массива любой размерности: int main() { int (*p); // указатель на безразмерный массив int a = {1}; int b = {1,2}; p = &a; // работает подробнее

Показать сообщение отдельно
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.06.2014, 00:19     Сравнение элементов двумерного массива
с сортировкой подсчётом, если интересно
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
#include <iostream>
#include <vector>
#include <limits>
#include <utility>
#include <cstddef>
 
 
std::pair<int, int> minmax_element(std::vector<int> const& sequence) {
   int min = std::numeric_limits<int>::max();
   int max = std::numeric_limits<int>::min();
   
   for (std::size_t i = 0; i != sequence.size(); ++i) {
      if (min > sequence[i]) {
         min = sequence[i];
      }
      
      if (max < sequence[i]) {
         max = sequence[i];
      }
   }
   
   return std::make_pair(min, max);
}
  
void counting_sort(std::vector<int> & sequence) {
   std::pair<int, int> const minmax = minmax_element(sequence);
   
   std::vector<std::size_t> counts(minmax.second - minmax.first + 1, 0);
   
   for (std::size_t i = 0; i != sequence.size(); ++i) {
      ++counts[sequence[i] - minmax.first];
   }
   
   for (std::size_t i = 0, j = 0; i != counts.size(); ++i) {
      for ( ; counts[i] != 0; --counts[i], ++j) {
         sequence[j] = static_cast<int>(i) + minmax.first;
      }
   }
}
  
std::size_t nonunique(std::vector<int> & sequence) {
   std::size_t const last = sequence.size();
   std::size_t first      = 0;
   std::size_t result     = 0;
   while (first != last) {
      std::size_t localLast = first + 1;
      for ( ; localLast != last && sequence[localLast] == sequence[first]; ++localLast);
 
      if (localLast != first + 1) {
         sequence[result++] = sequence[first];
         first = localLast;
      } else {
         ++first;
      }
   }
   
   return result;
}
  
 
int main() {
    std::vector<int> sequence;
    for (int value; std::cin >> value; ) {
       sequence.push_back(value);
    }
    
    counting_sort(sequence);
    
    std::size_t const result = nonunique(sequence);
    
    if (result != 0) {
       for (std::size_t i = 0; i != result; ++i) {
          std::cout << sequence[i] << '\t';
       }
       std::cout << std::endl;
    } else {
       std::cout << "all elements are unique" << std::endl;
    }
}
 
Текущее время: 19:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru