首页 > 解决方案 > 在构建编译器时出现错误“int 之前的预期初始化程序”一直在尝试学习 c++,我只是一直卡住

问题描述

构建日志消息:

在此处输入图像描述

这是代码的样子:

#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;
}

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

提前致谢 :)

标签: c++compiler-errorscodeblocks

解决方案


您忘记了;代码的第 4 行,伙计!(在您发布的图片中。)

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

从下次开始,请发布正确的代码,而不仅仅是一张图片。我所说的代码是指导致错误的实际代码。在这里,您图片中的代码与您在帖子中输入的代码不同!

在您键入的代码中,您调用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
}

您还应该查看这个线程,了解为什么“使用命名空间 std”被认为是一种不好的做法。


推荐阅读