当编译器在构建时抛出一个错误 "expected initializer before 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;
}

先谢谢你:)

解决方案:

你忘了一个 ; 在你的代码的第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 “被认为是一种不好的做法。

给TA打赏
共{{data.count}}人
人已打赏
未分类

预订后显示保留时出现ArrayIndexOutOfBounds异常的错误 - Java。

2022-9-9 3:18:18

未分类

如何在Tableau中写动态sql查询?

2022-9-9 3:18:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索