在构建编译器时出现错误 "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" 被认为是一种不好的做法。
生成日志消息:
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" 被认为是一种不好的做法。