Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何打印线性搜索后找到元素的索引?JAVA_Java - Fatal编程技术网

如何打印线性搜索后找到元素的索引?JAVA

如何打印线性搜索后找到元素的索引?JAVA,java,Java,我正在制作一个程序,在这个程序中,使用线性搜索来迭代100个随机生成的小于10000的数字数组 用户输入开始编号、中间编号和结束编号,线性搜索将在数组中迭代,并告诉用户在哪个索引中找到了元素 我已经实现了线性搜索,一切似乎都很好,但在实现了线性搜索之后,我似乎无法打印出元素的索引 我提供了代码、输入和输出: 代码: import java.util.Scanner; import java.util.Random; import java.util.Arrays; public class A

我正在制作一个程序,在这个程序中,使用线性搜索来迭代100个随机生成的小于10000的数字数组

用户输入开始编号、中间编号和结束编号,线性搜索将在数组中迭代,并告诉用户在哪个索引中找到了元素

我已经实现了线性搜索,一切似乎都很好,但在实现了线性搜索之后,我似乎无法打印出元素的索引

我提供了代码、输入和输出:

代码:

import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;

public class App {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    // generating n, 0 < n < 10000 and 0 < length < 100
    Random rand = new Random();
    int[] arr = new int[100];
    for (int z = 0; z < arr.length; z++) {
      arr[z] = rand.nextInt(10000);

    }
    // sorting 
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));

    int startNum = scanner.nextInt();
    int midNum = scanner.nextInt();
    int endNum = scanner.nextInt();

    // linear search
    for (int i = 0; i < arr.length; i++) {
        if (startNum == arr[i]) {
            System.out.println("Found");
        }
        else {
            System.out.println("Not Found");
            
        }
        // where I want to print out the final message such as "startNum found at i"
    }
}
boolean startNumFound = false, midNumFound = false, endNumFound = false;

for (int i = 0; i < arr.length; i++) {
    if (startNum == arr[i]) {
        System.out.println(startNum + " was found at index, " + i);
        startNumFound = true;
    } else if (midNum == arr[i]) {
        System.out.println(midNum + " was found at index, " + i);
        midNumFound = true;
    } else if (endNum == arr[i]) {
        System.out.println(endNum + " was found at index, " + i);
        endNumFound = true;
    }
}
if (!startNumFound) {
    System.out.println(startNum + " was not found");
}
if (!midNumFound) {
    System.out.println(midNum + " was not found");
}
if (!endNumFound) {
    System.out.println(endNum + " was not found");
}
import java.util.Scanner;
导入java.util.Random;
导入java.util.array;
公共类应用程序{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
//生成n,0
}

输入: 254 1467 8185

输出:

import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;

public class App {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    // generating n, 0 < n < 10000 and 0 < length < 100
    Random rand = new Random();
    int[] arr = new int[100];
    for (int z = 0; z < arr.length; z++) {
      arr[z] = rand.nextInt(10000);

    }
    // sorting 
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));

    int startNum = scanner.nextInt();
    int midNum = scanner.nextInt();
    int endNum = scanner.nextInt();

    // linear search
    for (int i = 0; i < arr.length; i++) {
        if (startNum == arr[i]) {
            System.out.println("Found");
        }
        else {
            System.out.println("Not Found");
            
        }
        // where I want to print out the final message such as "startNum found at i"
    }
}
boolean startNumFound = false, midNumFound = false, endNumFound = false;

for (int i = 0; i < arr.length; i++) {
    if (startNum == arr[i]) {
        System.out.println(startNum + " was found at index, " + i);
        startNumFound = true;
    } else if (midNum == arr[i]) {
        System.out.println(midNum + " was found at index, " + i);
        midNumFound = true;
    } else if (endNum == arr[i]) {
        System.out.println(endNum + " was found at index, " + i);
        endNumFound = true;
    }
}
if (!startNumFound) {
    System.out.println(startNum + " was not found");
}
if (!midNumFound) {
    System.out.println(midNum + " was not found");
}
if (!endNumFound) {
    System.out.println(endNum + " was not found");
}
发现 找不到 找不到 找不到 找不到 找不到 找不到 不 …(是否继续打印未找到?)


我只想保持这个简单,谢谢

如果您想在循环外打印结果,那么只需定义另一个值为
-1
的变量,因为索引从零开始,然后将已建立元素的索引存储在其中,如果没有找到,则值将为
-1
,这意味着找不到:

// linear search
int index = -1;
for (int i = 0; i < arr.length; i++) {
    if (startNum == arr[i]) {
        index = i;
        break;
    }
}

if (index != -1) {
    System.out.print(startNum + " Found at index: " + index);
} else {
    System.out.println("Not Found");
}
//线性搜索
int指数=-1;
对于(int i=0;i
  • 您可以为这三个数字中的每一个创建
    boolean
    变量,以跟踪它们是否被找到。无论在何处找到它们,都要打印它们的索引,并将相应的
    布尔值
    变量的值更改为
    真值
  • 循环终止后,检查这些
    布尔
    变量的值,如果其值未更改为
    ,则打印未找到消息
  • 代码:

    import java.util.Scanner;
    import java.util.Random;
    import java.util.Arrays;
    
    public class App {
      public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
    
        // generating n, 0 < n < 10000 and 0 < length < 100
        Random rand = new Random();
        int[] arr = new int[100];
        for (int z = 0; z < arr.length; z++) {
          arr[z] = rand.nextInt(10000);
    
        }
        // sorting 
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    
        int startNum = scanner.nextInt();
        int midNum = scanner.nextInt();
        int endNum = scanner.nextInt();
    
        // linear search
        for (int i = 0; i < arr.length; i++) {
            if (startNum == arr[i]) {
                System.out.println("Found");
            }
            else {
                System.out.println("Not Found");
                
            }
            // where I want to print out the final message such as "startNum found at i"
        }
    }
    
    boolean startNumFound = false, midNumFound = false, endNumFound = false;
    
    for (int i = 0; i < arr.length; i++) {
        if (startNum == arr[i]) {
            System.out.println(startNum + " was found at index, " + i);
            startNumFound = true;
        } else if (midNum == arr[i]) {
            System.out.println(midNum + " was found at index, " + i);
            midNumFound = true;
        } else if (endNum == arr[i]) {
            System.out.println(endNum + " was found at index, " + i);
            endNumFound = true;
        }
    }
    if (!startNumFound) {
        System.out.println(startNum + " was not found");
    }
    if (!midNumFound) {
        System.out.println(midNum + " was not found");
    }
    if (!endNumFound) {
        System.out.println(endNum + " was not found");
    }
    
    boolean startNumFound=false,midNumFound=false,endNumFound=false;
    对于(int i=0;i