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

Определить, какое из чисел встречается в массиве чаще всего - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.89
girlsbest
0 / 0 / 0
Регистрация: 27.10.2008
Сообщений: 14
27.10.2008, 19:48     Определить, какое из чисел встречается в массиве чаще всего #1
8. Элементы массива расположить в обратном порядке, не используя дополнительный массив. Написать программу, в которой исходный массив заполнить случайным образом элементами в пределах от 101 до 200. Вывести на экран элементы исходного и полученного массивов.
9. Написать фрагмент программы для определения, какое из чисел встречается в массиве чаще всего.
10. Написать рекурсивную функцию поиска элемента в упорядоченном по убыванию массиве.
плиз...очень нужно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2008, 19:48     Определить, какое из чисел встречается в массиве чаще всего
Посмотрите здесь:

Определить какое слово в строке встречается чаще всего C++
C++ Определить, какая буква чаще всего встречается в тексте, находящемся в заданном текстовом файле
C++ Определить, какое абсолютное значение встречается в массиве чаще остальных
Определить, какое слово чаще встречается в строке - первое или последнее (перевести с паскаля на си) C++
C++ Определить модуль какого из двух чисел встречается в числовом массиве чаще
C++ Определить, какое слово встречается в строке чаще всего
Определить какая согласная чаще всего встречается C++
Определить, какое слово встречается в строке чаще всего C++
Определить какой знак препинания(-,.:) встречается в строке чаще всего C++
Проверить, есть ли в массиве А [n] числа В и С и определить, какое из чисел встречается в массиве чаще C++
C++ Найти число, которое чаще всего встречается в матрице
Определить какое из чисел встречается в массиве чаще C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Duby
Сообщений: n/a
31.10.2008, 04:00     Определить, какое из чисел встречается в массиве чаще всего #2
8. Элементы массива расположить в обратном порядке, не используя дополнительный массив. Написать программу, в которой исходный массив заполнить случайным образом элементами в пределах от 101 до 200. Вывести на экран элементы исходного и полученного массивов.
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 <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#include <conio.h>
#define MAX_ARR 100
 
void main(){
  int array[MAX_ARR],i,itmp; 
  clrscr();
  randomize(); //initial randomizer
 
  cout<<"Source array with randomize numbers from 101 to 200:"<<endl;
  // Put random numbers to array and print them
  for (i=0;i<MAX_ARR;i++) cout<< (array[i]=101+random(100)) << " ,";
  cout<<endl;
 
  // reverse - exchange first and last elements of array
  for (i=0;i<(MAX_ARR/2);i++){
    itmp=array[i];
    array[i]=array[MAX_ARR-1-i];
    array[MAX_ARR-1-i]=itmp;
  };
 
  cout<<"Reversed source array:"<<endl;
  // print target array
  for (i=0;i<MAX_ARR;i++) cout<< array[i] << " ,";
  cout<<endl;
 
  if (getch()==0) getch();
}
Inlight
42 / 41 / 2
Регистрация: 17.09.2008
Сообщений: 98
31.10.2008, 14:02     Определить, какое из чисел встречается в массиве чаще всего #3
Немного переделал код Duby под VS 2008. Функция ищет методом двоичного поиска. Поиск наиболее часто встречающегося элемента немного коряво реализован, зато работает Жаль, что нельзя использовать сортировку подсчётом (там доп. массивы нужны) - было бы красивее.
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
80
81
82
83
84
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
#define MAX 100
 
int searchBinary(int* inArray, int e, int l, int r);
 
void main()
{
    int arrayOfNumbers[MAX];
    int tmp, searchingNumber, pos;
    int i, j, num = 0, buf = 0, a = 0, b = 0;
    srand(time(0)); //initial randomizer
    cout << "Source array with randomize numbers from 101 to 200:" << endl;
    // Put random numbers to array and print them
    for (int i = 0; i < MAX; i++) {
      cout << (arrayOfNumbers[i] = 101+rand()%100) << " ";
    }
    cout << endl;
    // просматриваем элемент от начала до конца, массив начинается с 0
    for (i = 0; i < MAX-1; i++) {
        // просматриваем массив со следующего от текущего положения элемента
        for (j = i+1; j < MAX; j++) {
            // если левый элемент меньше чем правый, то меняем их местами
            // т.о. меньшие элементы всплывают к концу массива
            if (arrayOfNumbers[i] < arrayOfNumbers[j]) {
                tmp = arrayOfNumbers[i];
                arrayOfNumbers[i] = arrayOfNumbers[j];
                arrayOfNumbers[j] = tmp;        
            }
        }
        if (arrayOfNumbers[i] != buf) {
            buf = arrayOfNumbers[i];
            b = 1;
        }
        else {
            b++;
            if (b > a) {
                num = buf;
                a = b;
            }
        }
        
    }
    cout << "Number " << num << " meets " << a << " times" << endl << endl <<
        "Reversed source array:" << endl;
    // print target array
    for (i=0; i < MAX; i++) {
        cout << arrayOfNumbers[i] << " ";
    }
    cout << endl << endl << "Search number: ";
    cin >> searchingNumber;
    cout << endl;
    pos = searchBinary(arrayOfNumbers, searchingNumber, 0, MAX-1);
    pos != -1 ? cout << "Find in position " << pos+1 : cout << "Not find.";
    _getch();
}
 
int searchBinary(int* inArray, int e, int head, int tail)
{   //inArray – массив, е – эталон поиска, 
    //head, tail – левая и правая границы подмассива, в котором производится поиск
    //Функция возвращает позицию найденного элемента (нумерация от 0) или -1 }
    int currPos = -1;
    if ((tail == head) && (inArray[tail] != e )) {
        return -1;
    }
    else {
           currPos = (head+tail)/2;
           if (e == inArray[currPos]) {
               return currPos;
           }
           else {
               if (e > inArray[currPos]) {
                   currPos = searchBinary(inArray, e, head, currPos);
               }
               else {
                   currPos = searchBinary(inArray, e, currPos+1, tail);
               }
           }
    }
}
Yandex
Объявления
31.10.2008, 14:02     Определить, какое из чисел встречается в массиве чаще всего
Ответ Создать тему
Опции темы

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