#include<iostream>
using namespace std;
int main(){
int n;
int current_element;
cin>>n>>current_element;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
int i;
for(i=n-1;i<=0;--i){
if(current_element==arr[i]){
cout<<i;
}
else{
cout<<"-1";
}
}
}
我正在尝试执行线性搜索程序,但是没有输出,代码有什么问题吗?
我认为问题是您两次声明了“ i”,这毫无意义。这是正确的代码:
#include<iostream>
using namespace std;
int main(){
int n, i=0;
int current_element;
cin>>n>>current_element;
int arr[n];
for(i=0;i<n;i++){
cin>>arr[i];
}
for(i=n-1;i<=0;--i){
if(current_element==arr[i]){
cout<<i;
}
else{
cout<<"-1";
}
}
}
通过这种方式,您一次用值0初始化“ i”,它应该可以工作。
我认为是因为在您的for循环中您说过
for(int i = n-1; i <= 0; --i)
这似乎不是您要尝试执行的操作,因为它说只要i <= 0,它就会一直运行,但是我永远不会小于或等于零。我想你想写i> = 0代替。另外,您还初始化了2个“ i”变量。