有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用来自ifstatement的输入在java中打印数组

请帮我打印这些阵列。在“IsPrime”方法中,它测试输入是否为素数,并将它们存储在数组“prime[]”中。我将其设置为一个很大的数组,因为我不可能知道输入将获得的确切素数,对于“palin”数组也是如此。在最后一个for循环中,我试图打印素数数组的结果,但我得到的输出不是素数。我收到“0000000000”谢谢

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

public class p1c {  
    private static Scanner scan;
    public static void main(String[] args){
       scan = new Scanner(System.in);
       int z;
       for(z = 0; z<2; z++){
           System.out.println("\n Please enter the first integer number:" );
           int numx = scan.nextInt();
           System.out.println("Please enter the second integer number");
           int numy = scan.nextInt();
           if ( numx < numy){ 
               isPrime(numx,numy);
           }
           else{
               System.out.print("This is invalid, try again, x must be less than y");
               System.exit(0);
           }
      }
  }

  public static int reverse(int i){
      int reverse = 0;
      while (i!= 0){
          reverse = reverse * 10;
          reverse = reverse + i % 10;
          i = i/10;
      }
      return reverse;
  }

  public static void isPrime(int numx, int numy){
      int d = 0,c;
      int prime[] = new int[50];
      int palin[] = new int[50];
      for (int i=numx; i <= numy; i++ ){
          for (c=2; c<i; c++){
              int n = i%c;
              if (n==0){
                  break;
              }
          }
          if(i == c && i != 0 && c != 0){
              prime[i]=i;
          }
          if( reverse(i)== i){
              int palindrome = i;
              palin[palindrome]= palindrome;
          }
     }  
     for(int count = 0; count < prime.length;count ++){
          d++;
          System.out.print(prime[count]);
          if(d == 10){
              System.out.println();
              d=0;
          }
      }
   }                    
}

共 (1) 个答案

  1. # 1 楼答案

    我认为你的问题与你选择阵列有关。所以,当你打印出数组的内容时,它会打印50个元素——大部分是0,因为这是你初始化它的结果

    改用List<Integer>。如: List <Integer> prime = new ArrayList<Integer> () ;

    然后在if条件下,当找到素数时,执行prime.add(i);

    打印列表内容时,使用prime.size()表示循环上限,打印内容时使用prime.get(count)