我被要求创建一个包含 16 个元素的新整数数组


Java

代码(不是 Java 脚本(。我被要求创建一个包含 16 个元素的新整数数组。

只能从用户(扫描仪(输入在数组中输入 1 到 7 之间的整数。

应仅允许有效的用户输入,并且应排除在边界之外输入的任何整数(<即 _x0031_=" 或="> 7(,并显示警告消息。设计一个将对数组进行排序的程序。

程序应显示排序数组的内容。然后,程序应显示用户输入选择的每个数字的出现次数但是我一直在尝试逐步完成此代码,并利用我的知识来帮助我,但需要帮助,我当前的代码在下面,如果有人能够将我的代码编辑成上述需求,我将不胜感激。我知道它需要按用户输入存储输入数组并重用代码对数字进行排序以对数组进行排序。

结果应该打印出这样的内容"输入到数组中的数字是:" 1、2、4、5、7"您选择搜索的号码是" 7"这在数组中发生"3"次"

import java.util.Scanner;
public class test20 {
   public static void main (String[] args){

      Scanner userInput = new Scanner (System.in);
      int [] nums = {1,2,3,4,5,6,7,6,6,2,7,7,1,4,5,6};
      int count = 0;    
      int input = 0;

      boolean isNumber = false;
      do {
            System.out.println ("Enter a number to check in the array");
            if (userInput.hasNextInt()){
                 input = userInput.nextInt();
                 System.out.println ("The number you chose to search for is " + input);
                 isNumber = true;
             }else { 
                        System.out.println ("Not a proper number");
                   }

                 for (int i = 0; i< nums.length; i++){      
                     if (nums [i]==input){
                         count ++;              
                 }
             }
             System.out.println("This occurs " + count + " times in the array");
        }
        while (!(isNumber));
    }
    private static String count(String string) {
      return null;
    }
}
import java.util.Scanner;
import java.util.Arrays;
public class test20 {
  private static int readNumber(Scanner userInput) {
    int nbr;
    while (true) {
      while(!userInput.hasNextInt()) {
        System.out.println("Enter valid integer!");
        userInput.next();
      }
      nbr = userInput.nextInt();
      if (nbr >= 1 && nbr <= 7) {
        return nbr;
      } else {
        System.out.println("Enter number in range 1 to 7!");
      }
    }
  }
  private static int count(int input, int[] nums) {
    int count = 0;
    for (int i = 0; i < nums.length; i++){
      if (nums[i] == input){
        count++;
      } else if (nums[i] > input) {
        break;
      }
    }
    return count;
  }
  public static void main(String[] args) {
    Scanner userInput = new Scanner(System.in);
    int[] nums = new int[16];
    for (int i = 0; i < nums.length; i++) {
      nums[i] = readNumber(userInput);
    }
    Arrays.sort(nums);
    System.out.println ("Sorted numbers: " + Arrays.toString(nums));
    int input = 0;
    while(true) {
      System.out.println("Search for a number in array");
      input = readNumber(userInput);
      System.out.println("The number you chose to search for is " + input);
      System.out.println("This occurs " + 
        count(input, nums) + " times in the array");
    }
  }
}

因为数组是排序的,所以如果找到一个比我们要查找的元素大的元素,我会中断循环;如果我们遇到一个更大的元素,那么在数组的其余部分找不到其他匹配项。

相关内容

  • 没有找到相关文章

最新更新