ТН
Татьяна Нечаева

Не работает программа нахождения наиболее повторяющегося элемента

Написал все с пояснениями, можете подсказать, почему не работает? В с++ недавно, мб где-то ошибся.
Но на паскале все запускается.

#include
#include
#include

using namespace std;

int main()
{

setlocale(LC_ALL, "RUS"); //подключение русского языка

printf ("Вариант 18. \n" );
printf ("\n");
printf ("Введите размерность массива \n");
int n;
scanf("%d", &n);
printf ("Введите элементы массива \n");
int A[n];
int i;
for (i=0; i);
}
int B[100]; //создаем второй массив, где i номер - число A массива и где B - число повторов этого A
for (i=0; i<100; i++) //прежде обнуляем наш массив
{
B=0;
}
for (i; i - это номер i в B, а B - число повторений этого номера (т. е. данный массив позволяет нам увидеть, какое число в A и сколько раз повторяется) .
{
B[A]=B[A]+1;
}

int p=0; //число повторения числа
int e; //само число

for (i; i<100; i++){
if (B>p){ //Если какое-то число повторяется больше, тогда
p=B; //присваиваем p B, т. е. новое число повторений, которой больше предыдущего
e=i; //e присваиваем новое число, которое повторяется больше предыдущего.
}
}
printf ("Наиболее встречающейся элемент: %d, повторяется: %d", e, p); //выводим результат на экран

getchar ();
return 0;
}

Где буквы A and B, там должно быть написано A and B

Где буквы A and B, там должно быть написано A(i) and B(i).
Квадратные скобки меил что-то не хочет тут писать.

РС
Рунов Серёга

#include
#include
#include

using namespace std;

bool op(const pair& a, const pair& b) { return a.second < b.second; }

int main() {
cout << "размер массива? ";
int n;
cin >> n;
cout << "элементы массива? \n";
int *a = new int[n];
for (int c = 0; c < n; ++c) cin >> a[c];
map m;
for (int c = 0; c < n; ++c) ++m[a[c]];
pair mx = *max_element(m.begin(), m.end(), op);
cout << "чаще всего втречается: " << mx.first << "; кол-во: " << mx.second << endl;
delete[] a;
}

Твоя программа, что с ней? Она не компилируется, или выводит неверный результат? К примеру, такое:
int A[n];
не все компиляторы проглотят. Ты каким пользуешься? Если Visual C++, то создавай массив, как в моем примере.

Так:

...
int i;
for (i = 0; i < n; ++i) scanf("%d", &A[ i]);

int B[100] = { 0 };

for (i = 0; i < n; ++i) ++B[A[ i]];

int e = 0;
int p = B[0];

for (i = 1; i < 100; ++i) {
if (B[ i] > p) {
p = B[ i];
e = i;
}
}

printf ("Наиболее встречающейся элемент: %d, повторяется: %d", e, p);
...

все должно работать, если числа в массиве не превышают 99.

> Квадратные скобки меил что-то не хочет тут писать.
Код публикуй на сайте pastebin.com, а сюда ссылку на свой код.

Похожие вопросы
я тупая - поможете? Повторяю - впервые работаю с программой торен. написано сидування - что делать,
помогите с паскалем пожалуйста!!!! Составьте программу для нахождения количества: строк, где все элементы одинаковы;
Составить программу нахождения первого члена последовате
Быстрый поиск наиболее часто встречаемого элемента в большом массиве.
Даны две матрицы А (4x5) и B(5x6). Написать программу нахождения суммы элементов главной диагонали матрицы А*В.
Прошу ВАС помочь правильно создать цикл While так, чтобы не было повторяющихся элементов.
Заменить повторяющиеся элементы матрици нулями. на языке с++
Заменить повторяющиеся элементы матрици нулями. с++
Составить программу для нахождения суммы по следующей формуле:
Было тут когда-то задание на поиск наиболее повторяющегося элемента списка. Свой алгоритм придумал, но... (+)