为什么我没有得到任何输出(线性搜索)?

问题描述 投票:0回答:2
#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";
    }
}
}

我正在尝试执行线性搜索程序,但是没有输出,代码有什么问题吗?

c++ output
2个回答
0
投票

我认为问题是您两次声明了“ 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”,它应该可以工作。


0
投票

我认为是因为在您的for循环中您说过

for(int i = n-1; i <= 0; --i)

这似乎不是您要尝试执行的操作,因为它说只要i <= 0,它就会一直运行,但是我永远不会小于或等于零。我想你想写i> = 0代替。另外,您还初始化了2个“ i”变量。

© www.soinside.com 2019 - 2024. All rights reserved.