java,打印输出模式

时间:2012-11-18 21:32:11

标签: java

我正在尝试计算模式和模式作为输出 但我遇到了一些困难。你能救我吗?

public class Main{
    public static void main(String[] args){

        int modes;
        int terval = -1;
        int[]a;

        while(a != terval){                     //problem is in this line and after.
            a = IO.readInt[];              

            for(int i = 0; i < a.length; i++){
                int count = 0;
                for(int j = 0;j < a.length; j++){
                    if(a[j] == a[i])
                        count++;        
                }
                modes = a[i];
            }
        }
        System.out.println(count);
        System.out.println(modes);
    }
}

1 个答案:

答案 0 :(得分:2)

这一行:while(a != terval)包含编译错误。

  1. int[] a从未初始化,因此在循环开始时它的值为null

  2. int[] a是整数数组,int terval是整数。条件a != terval未定义,因为您无法将int数组与int进行比较。

  3. 未定义的比较: int[] != int

    您可以将整数数组中的单个整数与另一个整数

    进行比较

    定义的比较: int[x] != int

    这样可行:a[x] != terval其中x是您要检查的数组索引

    考虑此修订:

    public class Main{
    public static void main(String[] args){
    
    boolean go = true; //controls master loop
    int modes;
    int terval = -1;
    int[]a;
    
    while(go) { //master loop
        a = IO.readInt[];              
        for(int i = 0; i < a.length; i++){
          go &= !(a[i] == -1); //sets go to false whenever a -1 is found in array
                               //but the for loops do not stop until 
                               //the array is iterated over twice
          int count = 0;
          for(int j = 0;j < a.length; j++){
            if(a[j] == a[i])
                count++;        
          }
          modes = a[i];         
        }
    }
    System.out.println(count);
    System.out.println(modes);
    
    }
    

    要从控制台获取用户输入:

    import java.util.Scanner;
    public class Main{
    
      public static void main(String[] args){
    
        Scanner in = new Scanner(System.in);
        boolean go = true;
        int modes;
        int count;
        int size = 32; //max array size of 32
        int terval = -1;
        int t=0;
        int i=0;
        int[] a = new int[size]; 
    
        while(go && i < size) { //master loop
          t = in.nextInt();
          go &= !(t == terval);
          if (go) { a[i++] = t; }  
        }
        // "a" is now filled with values the user entered from the console
        // do something with "modes" and "count" down here
        // note that "i" conveniently equals the number of items in the partially filled array "a"
      }
    }