试图打印方法

时间:2017-03-11 21:44:13

标签: java

我正在尝试将数字分为两类。数字(实际数字)和计数(此数字的出现次数),所有数字都存储在50个整数的数组中。我使用冒泡排序方法按降序对此数组进行排序。

我的打印方法需要工作。代码编译得很好但是当我运行代码时没有输出。

为什么我的代码不能打印任何内容?

这是我的代码

public class HW5{
    public static void main(String[] args) {
        int[] array = new int[50];
        bubbleSort(array, 'D');
        printArray(array);
    }
    public static void bubbleSort(int[] array, char d){
        int r = (d=='D') ? -1 : 1 ;
        for (int f = 0; f < array.length - 1; f ++){ 
            for (int index = 0; index < array.length - 1; index++){    
                if (array[index] > array[index + 1]){       

                }
            }        
        }
    }
    public static void printArray(int[] array){
        int count = 0;
        int i = 0;
        for(i = 0; i < array.length - 1; i++){
            if (array[i]== array[i + 1]){
                count = count + 1;
            }else{
                System.out.printf(count + "/t" + array[i]);
                count = 0;
            }   
        }
    }                   
}

2 个答案:

答案 0 :(得分:0)

  

为什么我的代码不能打印任何内容?

对象数组持有50个元素,所有值都设置为零, printArray 方法将打印当且仅当此条件为假时

<input type="text" id="username" placeholder="Username" name="uname" maxlength="15" required>

<input type="password" id="password" placeholder="Password" name="psw" maxlength="25" required>

<div id="loginButton">
  <button type="button" input id="detailsChecker" onclick="showalert('alert');" label=>Login </button>
</div>

<div id="alert" style="display:none;">
  <span class="closebtn" onclick="this.parentElement.style.display='none';">&times;</span>
  <p id="alertmsg"> </p>
</div>

<div id="alertsuccess" style="display:none;">
  <span class="closebtn" onclick="this.parentElement.style.display='none';">&times;</span>
  <p id="alertmsg"> </p>

但由于数组中的所有元素都是0 ...你只是不打印任何东西......

答案 1 :(得分:0)

您的代码正在打印任何内容,因为您没有将数组值设置为任何内容。因为您没有将数组设置为任何值,所以java将所有值默认为0.如果array[i] == array[i+1]我将打印方法改为此代码,则代码不会输出:

public static void printArray(int[] array){
    int count = 0;
    int i = 0;
    for(i = 0; i < array.length - 1; i++){
        if (array[i]== array[i + 1]){
            count = count + 1;
        }else{
            System.out.print(count);
            count = 0;
        }
        System.out.print(array[i]); //Moved this line out of the if/else statement so it will always print the array at i   
    }
}

我只更改了我评论的那一行。但是,如果您确实更改了数组的值,则原始代码将起作用。对于随机值,首先需要导入java.util.Math,然后执行以下操作:

for(int i = 0; i < array.length; i++)
    array[i] = (int)Math.random() * 100; //Sets the array at i to a random number between 0 and 100 (non-inclusive)

这将有助于您的上述代码按您的意愿工作。希望这有帮助!

编辑:修正了语法错误。