Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее (http://forum.oszone.net/showthread.php?t=280410)

Frozen_Sky 06-04-2014 18:09 2333913

Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее
 
Дан массив A(M). Выберите из него все элементы, которые встречаются в массиве наибольшее число раз. Код есть, поможете доработать? нужно чтобы элементы массива были в диапазоне ±1000. а M - в диапазоне 2, 20. И нужно распечатать индексы этих элементов в порядке возрастания. Заранее благодарен.

Код:

#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;
 
 
int main()
{
    cout  << endl;
    unsigned int lenthOfArray=0;        //переменная длины массива
    cin >> lenthOfArray;                //считываем длину массива
    //создаем Массив
    int** Array = new int *[lenthOfArray];
    for (int i = 0; i < lenthOfArray; i++)
        Array[i] = new int [2];
 
    for(int i=0;i<lenthOfArray;i++)
    {
        Array[i][1]=0;                  //заполняем 0 количество повторов для каждого элемента
    }
    unsigned int max=0;
    cout <<  endl;
    for(int i=0;i<lenthOfArray;i++)
    {
        cin >> Array[i][0];            //считываем массив
        for(int j=0;j<i;j++)
        {
            if(Array[j][0]==Array[i][0])
                Array[i][1]++;        //увеличиваем на 1, если такой элемент уже встречался
        }
    }
   
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]>max)
            {
                max=Array[i][1];      //ищем максимальное число повторов
            }
    }
    cout  << endl;
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]==max)
            {
                cout << Array[i][0] << " ";  //выводим элементы с максимальным числом повторов
            }
    }
    getch();
   
    for (int i = 0; i < lenthOfArray; i++)
    {
        delete [] Array[i];
    }
    delete [] Array;
    return 0;
}



Время: 20:39.

Время: 20:39.
© OSzone.net 2001-