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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
master19
9 / 9 / 0
Регистрация: 05.11.2009
Сообщений: 45
#1

Поиск в массиве числа, встречающегося наибольшее число раз. - C++

05.11.2009, 22:02. Просмотров 1152. Ответов 11
Метки нет (Все метки)

задание такого:
программа должна находить значение встречаещееся в массиве наибольшее число раз.

если кто может помоч,буду очень благодаен!!
заранее спасибо!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2009, 22:02     Поиск в массиве числа, встречающегося наибольшее число раз.
Посмотрите здесь:
C++ Определить, какой из элементов повторяется в массиве наибольшее число раз
C++ Найти, какое значение встречается в данном массиве наибольшее число раз
C++ Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее число раз
C++ Массив: вывести число, повторяющееся наибольшее число раз.
C++ Вывести числа, которые встречаются в массиве несколько раз / один раз
C++ Найти число повторяющееся наибольшее количество раз
Элемент массива, встречающйся наибольшее число раз. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
05.11.2009, 22:19     Поиск в массиве числа, встречающегося наибольшее число раз. #2
a числа в массив должны вводиться с клавы или они заданны уже?
master19
9 / 9 / 0
Регистрация: 05.11.2009
Сообщений: 45
05.11.2009, 22:20  [ТС]     Поиск в массиве числа, встречающегося наибольшее число раз. #3
программа для С

Добавлено через 51 секунду
желательно с клавиатуры
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
05.11.2009, 23:23     Поиск в массиве числа, встречающегося наибольшее число раз. #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
#include <iostream>
#include <conio.h>
using std::cout;     // подключишь cout
using std::cin;       // подключишь cin
using std::endl;     // подключишь endl
 
main(){
    int i,j,n=4,a[n];
    for(i=0;i<=n;i++){
        cout<<"vvedi a["<<i<<"]:"<<endl;
        cin>>a[i];
    }
 
    int z=a[0],max=1,k;
    for(i=0;i<n;i++){
        k=1;
 
        for (j=i+1;j<=n;j++){
            if(a[i]==a[j]){
                k++;
            }
        }
        if(max<k){
            max=k;
            z=a[i];
        }
    }
    cout<<"chislo kotoroe vtretilos naibolsee("<<max<<")raz="<<z<<endl;
    getch();
    return 0;
}
master19
9 / 9 / 0
Регистрация: 05.11.2009
Сообщений: 45
05.11.2009, 23:28  [ТС]     Поиск в массиве числа, встречающегося наибольшее число раз. #5
ооо,спасибо огромное!!!!!!

Добавлено через 1 минуту
только нажно для С (
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
06.11.2009, 00:15     Поиск в массиве числа, встречающегося наибольшее число раз. #6
разница в сin,cout и все? тогда замени на printf,scanf
ЗЫ просто я не знаю разницы си и си++
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
06.11.2009, 01:21     Поиск в массиве числа, встречающегося наибольшее число раз. #7
Цитата Сообщение от sheka Посмотреть сообщение
разница в сin,cout и все? тогда замени на printf,scanf
ЗЫ просто я не знаю разницы си и си++
#include <iostream>

в вашем случае это основная разница.
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
06.11.2009, 02:08     Поиск в массиве числа, встречающегося наибольшее число раз. #8
master19, думаю, что не лучший вариант, но на С
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
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int *arr = NULL;
    int elements, max_counted_value, max_count, cur_count, i, j;
    
    printf("Elements in array: ");
    scanf("%d", &elements);
    if ( elements < 1 ){
        printf("ERROR: number of elements can't be less 1\n");
        exit(1);
    }
    
    if ( (arr = (int *)calloc(elements, sizeof(int))) == NULL ) {
        printf("ERROR: not enough memory\n");
        exit(1);
    }
    
    for ( i = 0; i < elements; i++ ) {
        printf("array[%d] = ", i);
        scanf("%d", &arr[i]);
    }
    
    max_counted_value = arr[0];
    max_count = 1;
    for ( i = 0; i < elements - 1; i++ ){
        cur_count = 1;
        for ( j = i + 1; j < elements; j++ )
            if ( arr[j] == arr[i] )
                cur_count++;
        if ( cur_count > max_count ){
            max_count = cur_count;
            max_counted_value = arr[i];
        }
    }
    
    printf("Value %d meet %d times\n", max_counted_value, max_count);
    
    free(arr);
    arr = NULL;
    exit(0);
}

Цитата Сообщение от sheka Посмотреть сообщение
for (j=i+1;j<=n;j++){ if(a[i]==a[j]){
При j равном n a[j] выходит за границу массива
А на С программу не только вводом/выводом непохоже... Переменные посреди программы тоже объявлять нельзя...
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
06.11.2009, 12:59     Поиск в массиве числа, встречающегося наибольшее число раз. #9
easybudda, согласен, в обоих циклах надо n-1 писать)
Т.е. В С++ используется ТОЛЬКО cin,cout, а в С ТОЛЬКО printf, scanf?
А переменные в Си надо объявлять в начале main? можно ли перед main?
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
06.11.2009, 15:32     Поиск в массиве числа, встречающегося наибольшее число раз. #10
Цитата Сообщение от sheka Посмотреть сообщение
Т.е. В С++ используется ТОЛЬКО cin,cout, а в С ТОЛЬКО printf, scanf?
А переменные в Си надо объявлять в начале main? можно ли перед main?
1. Не, не только... Ещё fputs, fgets и другие функции... Не так давно тут на форуме целая ветка про это была, поищите...
2. Переменные, объявленные вне функции, являются статическими. Это отдельная история...
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
06.11.2009, 18:42     Поиск в массиве числа, встречающегося наибольшее число раз. #11
юзай
C++
1
map<int,int> M;
и запомни: STL это круто))
C++
1
2
3
4
5
6
7
8
9
10
11
12
//иницыализация
map<int,int>M;
//добавления числа в мап, точнее узнаешь когда прочтешь: [url]http://msdn.microsoft.com/en-us/library/bb385692.aspx[/url]
for (int i = 0; i < n; ++n)
++M[a[i]]; //где a - одномерный масив, n - размер масива, после этого ищешь максимальный элемент в мапе не помню какая юзается функция, розпишу полностью:
int m = -1, x;
for (map<int, int>::iterator it = M.begin(); it != M.end(); ++it)
       if (it->second > m) {
              m = it->second;
              x = it-first;
       }
//таким образом x - твое число, которое встречается максимум раз..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2009, 18:55     Поиск в массиве числа, встречающегося наибольшее число раз.
Еще ссылки по теме:
C++ Поиск символа, который встречается в тексте наибольшее количество раз
Определить число, встречающееся в последовательности наибольшее количество раз (массивы) C++
C++ Определить наибольшее число в массиве
C++ Наибольшее и наименьшее число в массиве.
C++ Определить какие латинские гласные буквы встречаются наибольшее число раз

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
06.11.2009, 18:55     Поиск в массиве числа, встречающегося наибольшее число раз. #12
Цитата Сообщение от outoftime Посмотреть сообщение
и запомни: STL это круто))
Особенно, когда на С пишешь
Yandex
Объявления
06.11.2009, 18:55     Поиск в массиве числа, встречающегося наибольшее число раз.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru