C++ 错误C3861:找不到标识符;怎么办?

C++ 错误C3861:找不到标识符;怎么办?,c++,list,C++,List,我正在尝试制作一个非stl列表,并能够在其中找到最常见的数字。决定首先编写能够输入元素和打印列表所需的函数,以便检查是否一切正常。到现在为止,一直都还不错。然后,当我试图编写一个函数来查找最常见的元素时,问题就开始了。我想一个接一个地搜索元素,每次遇到这个数字时,都会有一个增加1的变量。到目前为止,我只使用了一个函数来搜索我选择的一个元素。然而,它总是给我一个错误。我不知道怎么继续。我希望能够修改函数以搜索最常见的元素,但首先要确保它按原样工作。你知道我的错在哪里吗 #include <i

我正在尝试制作一个非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; 
} 
#包括
使用名称空间std;
无效添加(int n);
作废清单();
结构元素
{
int键;
elem*下一步;
}*开始=空;
int main()
{  
int ch,num,amount,i,element;
做
{cout在使用
search\u elem
函数之前,您需要(至少)为该函数提供一个函数原型(正如您使用
add\uö
list
函数所做的那样)

因此,将原型添加到与其他功能相同的位置:

void add_è(int n);
作废清单();
int search_elem(int n);//在调用该函数之前,您需要使用它!

此外,如果您的编译器符合
C++11
标准(或更高版本),则应使用
NULL ptr
而不是
NULL
宏。并且请阅读以下内容:。

添加
中的
e
看起来像Unicode字符。将其设置为ASCII
e

并且,在调用它的位置之前向前声明
search\u elem()

以下是更新的代码:


另一件事是您正在泄漏内存。您正在使用
new
分配内存,但没有使用
delete
释放内存。您也需要注意这一点。

请添加错误消息的确切文本。从“输出”选项卡而不是“错误”列表复制该文本。如果您正确格式化了代码,也会有所帮助。您的main()似乎缺少正确的缩进。错误C3861:“搜索元素”:标识符不正确found@KucheKajiMyau请在问题中添加错误信息,而不是评论。在狡猾的“e”上发现得很好-值得投票!我的编译器(MSVC和clang cl)接受了它nem con。