在构建编译器时出现错误 "expected initializer before int" 一直在尝试学习 C++,但我一直卡在其中

Upon building the compiler thows an error "expected initializer before int" been trying to learn c++ and i just keep getting stuck

生成日志消息:

enter image description here

代码如下所示:

#include <iostream>

using namespace std;
int lsearch(int[],int,int);

int main()

 {


int N,ITEM,INDEX,ar[20];

cout<<"how many elements?(max 20)\n"<< endl;

cin>>N ;

cout<<"\n enter elements\n";

for(int i=0;i<N;i++)

cin>>ar[i];

cout<<"your array is as follows :\n";

for (int i =0;i<N ;i++ )


cout<<ar[i] <<"\n";

cout<<"enter element to be searched for:\n";

cin>>ITEM;

INDEX=lsearch(ar[ ],N,ITEM);

if(INDEX==-1)

cout<<"element not found";

else

cout<< "item found at index:"<<INDEX<<"position:"<<INDEX+1;

return 0;
}

int lsearch (int ar[ ],int N,int ITEM)
{

    for (int i=0;i<N ;i++ )
{
    if  ( ar [i]==ITEM)

    return i;
}

        return -1;
}

'''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''

提前致谢:)

你在代码的第 4 行忘记了一个 ; 老兄! (在 image 你 post 编的。)

其实不需要第4行:int lsearch(int [], int, int)。因为在下一行中,您将定义函数本身。如果您愿意,可以跳过原型声明。

从下次开始请 post 正确的代码,而不仅仅是图像。我所说的代码是指导致错误的实际代码。您图片中的代码与您在 post!

中输入的代码不同

在您输入的代码中,您将 lsearch 调用为 lsearch(arr[], N, ITEM) [第 34 行]。应该这样调用:lsearch(arr, N, ITEM).

这是您更正后的代码:

#include <iostream>
using namespace std;

int lsearch(int [], int, int);

int main() {
    int N, ITEM, INDEX, ar[20];
    cout << "How many elements? (max 20): " << endl;
    cin >> N;
    cout << "Enter elements: " << endl;
    for (int i = 0; i < N; i++)
        cin >> ar[i];
    cout << "Your array is as follows: " << endl;
    for (int i = 0; i < N; i++)
        cout << ar[i] << endl;
    cout << "Enter the element to be searched for: " << endl;
    cin >> ITEM;
    INDEX = lsearch(ar, N, ITEM);
    if (INDEX == -1)
        cout << "Element not found!" << endl;
    else
        cout << "Item found at index: " << INDEX << " position: " << INDEX + 1 << endl;
    return 0;
}

int lsearch(int ar[], int N, int ITEM) {
    for (int i = 0; i < N; i++)
        if (ar[i] == ITEM)
            return i;
    return -1;
}

样本运行:

How many elements? (max 20): 5
Enter elements: 1 2 3 4 5
Your array is as follows: 
1
2
3
4
5
Enter the element to be searched for: 4
Item found at index: 3 position: 4

这段代码几乎是一样的(我从你的图片中猜到了这段代码):

#include <iostream>
using namespace std;

int lsearch(int[], int, int); // Your line 4 which isn't necessary and where you missed a semi-colon!
int lsearch(int ar[], int N, int ITEM) {
    for (int i = 0; i < N; i++)
        if (ar[i] == ITEM)
            return i;
    return -1;
}

int main() {
    // same as in above code
}

您还应该查看 this thread 为什么 "using namespace std" 被认为是一种不好的做法。