Я пытаюсь составить список, отличный от stl, и найти в нем наиболее распространенный номер. Решил сначала написать функции, необходимые для возможности ввода элементов, а также для печати списка, чтобы я мог проверить, все ли в порядке. Все идет нормально. Затем, когда я попытался написать функцию, чтобы найти наиболее распространенный элемент, начались проблемы. Я думал искать элементы один за другим и иметь переменную, которая будет увеличиваться на 1 каждый раз, когда я сталкиваюсь с числом. До сих пор мне удавалось иметь только функцию, которая ищет только один элемент, который я выбрал. Однако это продолжает давать мне ошибку. Не уверен, как поступить. Я хотел иметь возможность изменить функцию для поиска наиболее распространенного элемента, но сначала хотел убедиться, что она работает как есть. Ты хоть представляешь, где моя ошибка?
#include <iostream>
using namespace std;
void add_е(int n);
void list();
struct elem
{
int key;
elem *next;
} *start=NULL;
int main()
{
int ch, num, amount, i, element;
do
{ cout<<"\n\t Menu";
cout<<"\n 1.Add elements";
cout<<"\n 2.Find the most common element";
cout<<"\n 3.Print the stack";
cout<<"\n 4.Exit";
do
{ cout<<"\n Your choice is:";
cin>>ch;
}
while (ch<1||ch>4);
switch(ch)
{
case 1:
cout<<"\n How many elements do you want to add?";
cin>>amount;
for(i=0; i<amount; i++)
{
cout<<"Input stack elements:\n";
cin>>num;
add_е(num);
}
break;
case 2:
cout<<"\n Which element do you want to find? \n ";
cin>>element;
search_elem(element); // here it gives me an error
break;
case 3: list();
break;
}
}while(ch!=4);
}
void add_е(int n) { elem *p=start, *q=p;
q=new elem;
q->key=n;
q->next=NULL;
if (start)
{
while (p->next)
p=p->next;
p->next=q;
}
else
start=q;
}
void list()
{
if (start)
{
elem *p=start;
cout<<"\n List is: \n";
while (p)
{
cout<<p->key<<"\n";
p=p->next;
}
}
else
cout<<"\n Empty list";
}
//izvejdane na spisuka
int search_elem(int n)
{
elem *p=start;
if (start)
{
while ((p->key!=n)&&(p->next))
p=p->next;
if (p->key==n)
{
cout<<"p->key"<<"\n";
return 1;
}
else
cout<<"No element found";
return 0;
}
return 0;
}