C++ 错误C3861:找不到标识符;怎么办?
我正在尝试制作一个非stl列表,并能够在其中找到最常见的数字。决定首先编写能够输入元素和打印列表所需的函数,以便检查是否一切正常。到现在为止,一直都还不错。然后,当我试图编写一个函数来查找最常见的元素时,问题就开始了。我想一个接一个地搜索元素,每次遇到这个数字时,都会有一个增加1的变量。到目前为止,我只使用了一个函数来搜索我选择的一个元素。然而,它总是给我一个错误。我不知道怎么继续。我希望能够修改函数以搜索最常见的元素,但首先要确保它按原样工作。你知道我的错在哪里吗C++ 错误C3861:找不到标识符;怎么办?,c++,list,C++,List,我正在尝试制作一个非stl列表,并能够在其中找到最常见的数字。决定首先编写能够输入元素和打印列表所需的函数,以便检查是否一切正常。到现在为止,一直都还不错。然后,当我试图编写一个函数来查找最常见的元素时,问题就开始了。我想一个接一个地搜索元素,每次遇到这个数字时,都会有一个增加1的变量。到目前为止,我只使用了一个函数来搜索我选择的一个元素。然而,它总是给我一个错误。我不知道怎么继续。我希望能够修改函数以搜索最常见的元素,但首先要确保它按原样工作。你知道我的错在哪里吗 #include <i
#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字符。将其设置为ASCIIe
并且,在调用它的位置之前向前声明search\u elem()
以下是更新的代码:
另一件事是您正在泄漏内存。您正在使用new
分配内存,但没有使用delete
释放内存。您也需要注意这一点。请添加错误消息的确切文本。从“输出”选项卡而不是“错误”列表复制该文本。如果您正确格式化了代码,也会有所帮助。您的main()似乎缺少正确的缩进。错误C3861:“搜索元素”:标识符不正确found@KucheKajiMyau请在问题中添加错误信息,而不是评论。在狡猾的“e”上发现得很好-值得投票!我的编译器(MSVC和clang cl)接受了它nem con。