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

Определить количество максимальных элементов в массиве. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти число элементов массива, которые больше своих “соседей” http://www.cyberforum.ru/cpp-beginners/thread345621.html
Найти число элементов массива, которые больше своих “соседей”, т.е. предшествующего и последующего элементов.
C++ Математически описанный алгоритм -> C++ Имеется статья с алгоритмом. В С++ я новичок потому не очень понятно, как все же описать математические термины(см.картинку) и как сделать пересечение множеств(предполагалось использование библ. boost). Кто-нибудь уже сталкивался с написанием алгоритма по научным статьям? http://narod.ru/disk/23000238001/Local%20Optimality%20and%20Its%20Application%20k-claw%20free%20gr.pdf.html http://www.cyberforum.ru/cpp-beginners/thread345593.html
C++ Как тут происходит перестановка байтов...
Вот в книге Шилдта 4-е издание... есть такой пример: #include <iostream> #include <cstdio> #include <cstring> #include <windows.h> using namespace std; union swap_byte
Проблема в стэке C++
Всем Привет! Я делал упражнение на тему стэков, вроде всё сделал, но вылетает какая-то глупая ошибка. Вот код, я думаю, можно не объяснять, что должна делать программа, но если потребуется, объясню. Заголовочный файл с классом: // файл attach.h struct customer { char fullname; double payment; }; typedef customer Item;
C++ Список, стек и очередь. http://www.cyberforum.ru/cpp-beginners/thread345534.html
Файл содержит вещественные числа. Нужно удвоит вхождение всех чисел N. Решить с помощью стека, списка и очереди в С++. Вся информация считывается и выводится в файл, из консоли ничего не считывается и не выводится. Доступ к элементам стека или очереди происходит только с помощью функции извленения элемента из стека или очереди. Помогите пожалуйста!
C++ Возведение в степень n с помощью рекурсии #include<iostream> using namespace std; int funk(int,int); int main () {setlocale(LC_ALL,"Rus"); int a=2,n=5; cout<<funk(a,n); cin.get(); cin.get(); return 0; подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
29.08.2011, 19:11     Определить количество максимальных элементов в массиве.
Цитата Сообщение от Сыроежка Посмотреть сообщение
Мой код профессиональный
А мой - нет!
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
#include <stdio.h>
    
int * max_element(const int * arr, size_t size){
    return ( size < 2 ) ? (int*)arr : ( *arr < *(arr + size - 1) ) ? max_element(arr + 1, size - 1) : max_element(arr, size - 1);
}
 
size_t count(const int * arr, size_t size, int val){
    return ( size ) ? ( *arr == val ) + count(arr + 1, size - 1, val) : 0;
}
 
void dump(const int * arr, size_t size){
    while ( size-- )
        printf("%d%c", *arr++, ( size ) ? ' ' : '\n');
}
 
#define SIZE 10
 
int main(void){
    int arr[SIZE] = { 1, 3, 5, 3, 2, 5, 4, 3, 1, 2 }, me = *max_element(arr, SIZE);
    
    printf("Array: ");
    dump(arr, SIZE);
    printf("Max element %d meets %d times.\n", me, count(arr, SIZE, me));
    
    return 0;
}


Вот ещё до кучи...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <map>
#include <algorithm>
#include <iterator>
    
int main(){
    const int size(10);
    int arr[size] = { 1, 3, 5, 3, 2, 5, 4, 3, 1, 2 };
    
    std::cout << "Array: ";
    std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::map<int, int> map;
    for ( int i = 0; i < size; ++i )
        map[arr[i]]++;
    std::cout << "Max element " << map.rbegin()->first << " meets " << map.rbegin()->second << " times." << std::endl;
    
    return 0;
}
 
Текущее время: 23:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru