题目描述
在一个序列(下标从 0 开始)中查找一个给定的值,输出第一次出现的位置。
输入格式
第一行包含一个正整数 n,表示序列中元素个数。1≤n≤10000。
第二行包含 n 个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过10000。
第三行包含一个整数 x,为需要查找的特定值。x 的绝对值不超过10000。
输出格式
若序列中存在 x,输出 x 第一次出现的下标; 否则输出 -1
。
输入输出样例
输入 #1
5
2 3 6 7 3
3
输出 #1
1
运行代码
import java.util.*;
public class Main{
public static void main(String[]args){
Scanner s=new Scanner (System.in);
int n=s.nextInt();
int []a=new int [20005];
boolean y=false;//假设数组里没有x值
for(int i=0;i<n;i++){
int num=s.nextInt();
a[i]=num;
}
int x=s.nextInt();
for(int i=0;i<n;i++){
if(x==a[i]){
System.out.println(i);
y = true;//在数组里找到x值
break;
}
}
if (y==false){
System.out.println("-1");
}
}
}
小结
这道题目除了在数组中查找元素,难点就是如果数组里没有特定的值要输出-1,这里用了布尔类型定义一个变量y,先假设在数组里找不到特定的x值,在后面的循环中如果找到x值,那么就给y赋一个新值,如果找不到,即y还是false值,就输出-1。