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

Найти максимальное из чисел встречающихся в данном одномерном массиве более одного раза - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти средне арифметическое четных чисел и средне геометрическое положительных чисел http://www.cyberforum.ru/cpp-beginners/thread360017.html
решите кому не сложно.. В одномерном массиве заданного размера найти средне арифметическое четных чисел и средне геометрическое положительных чисел..Заранее спасибо.
C++ Помогите с решением задачи.В одномерном (динамическом)массиве заменить последний из нулевых элементов на три нуля.(С++) Вот программа,она работает.Правда,если в массиве два или более нулей,замена осуществляется с первым нулём,а нужно с последним. include "stdafx.h" #include<iostream> using namespace std; void input(int *a,int n); http://www.cyberforum.ru/cpp-beginners/thread360016.html
Вывод в Edit массивов C++
Всем доброго времени суток. Посмотрите есть вот такой код: int num,o; char buff; num = StrToInt(Edit23->Text); o = StrToInt(Edit24->Text); itoa(num,buff,o); Edit25->Text=IntToStr(buff); эта программка переводит из 10-ой системы исчисления в другую, так вот проблема с выводом (Edit25->Text=IntToStr(buff)) как я понимаю buff это массив, и после перевода он выводит в окно только значение...
C++ Размещение map'а в памяти
Элементы вектора гарантировано размещаются в памяти рядом, в случае списка элементы лежат где попало, но для этого есть прямые и обратные ссылки у элементов того же списка... Вопрос - а как размещаются элементы того же std::map?, знаю что каждый элемент представляет пару, но как именно в памяти они размещаются не очень Спасибо :)
C++ Перевод температуры из градусов по шкале Цельсия в градусы по шкале Фаренгейта http://www.cyberforum.ru/cpp-beginners/thread360004.html
Приветствую, помогите пожалуйста ребяят ) срочно нужна написать программу ... условия таковы : Написать программу, которая получает данные по Цельсию в виде 15С и преобразует их в данные по Фаренгейту 59F. 0 по Цельсию равен 32 по Фаренгейту. 1 градус по Цельсия равен 1.8 по Фаренгейту. Установить ширину поля 10 символов, заполнить вместо пробелов символом $ с помощью функций и...
C++ дан список л содержащий н символов. все вхождения данного символа необходимо переместить на первую позицию дан список л содержащий н символов. все вхождения данного символа необходимо переместить на первую позицию.например- символ а .строка врарпава порлучилось аааррпв подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.10.2011, 14:59     Найти максимальное из чисел встречающихся в данном одномерном массиве более одного раза
Не претендую на приз "Алгоритм года", сделал реализацию при условии, что массив нельзя изменять
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
#include <stdio.h>
#include <limits.h>
    
int * allmost_top(const int * arr, size_t size, int absTop){
    const int * ret;
    
    while ( *arr >= absTop && size > 0 ){
        ++arr;
        --size;
    }
    if ( ! size )
        return NULL;
    
    ret = arr;
    while ( --size )
        if ( *(++arr) < absTop && *ret < *arr )
            ret = arr;
    
    return (int*) ret;
}
 
int * find_same(const int * arr, size_t size, int value){
    while ( size-- ){
        if ( *arr == value )
            return (int*)arr;
        ++arr;
    }
    
    return NULL;
}
 
#define SIZE 10
int main(void){
    int arr[SIZE] = { 9, 8, 7, 2, 5, 3, 3, 4, 5, 1 };
    int * found;
    
    for ( found = allmost_top(arr, SIZE, INT_MAX); found; found = allmost_top(arr, SIZE, *found) )
        if ( find_same(found + 1, SIZE + arr - found - 1, *found) )
            break;
    
    if ( ! found )
        printf("No doubling elements in array!\n");
    else
        printf("The biggest element repeating in array have value of %d\n", *found);
    
    return 0;
}
Понятия не имею, что там со сложностью. Кстати, Thinker, буду признателен, если хорошую на ваш взгляд литературу подскажете...
Ну и очевидное ограничение - значения массива должны быть меньше INT_MAX, что, в прочем, можно исправить...
 
Текущее время: 12:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru