Frozen_Sky
06-04-2014, 18:09
Дан массив 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;
}
#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;
}