c++ - 在构建编译器时出现错误“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”被认为是一种不好的做法。
推荐阅读
- c++ - 为什么 std::accumulate 生成 705032704 作为输出而不是向量中元素的总和?
- python - 合并两个排序的列表列表,如果内部列表中有重复值,则仅保留第一个列表中的值
- python - 优化大熊猫数据框的重复查询(掩码)
- javascript - 如何在d3.js中的两个路径元素之间绘制链接线
- c# - 正则表达式在 ac# 字符串中转义
- android - 无法在 Android 中录制来电和去电的音频
- angular - Angular 6/7/8 中的 NgStyle 实现
- c++ - cout 内部函数调用的顺序
- codeigniter - 如何在codeigniter中显示数据库中的所有记录?
- bash - 如何获取集群中所有 Kafka 主题的列表以及可用于主题的分区号和唯一分区号