代码编译并执行,但不打印任何内容

时间:2015-12-01 19:05:15

标签: java

时间限制扩展是执行以下代码的成功编译的类文件时的状态。

import java.io.*;
public class CandidateCode {

    public static int ThirstyCrowProblem(int[] input1, int input2, int input3) {
        int[] arrK = new int[input3];
        int minstones = 0;
        for (int i = 0; i < input3; i++) //create an array of k Os.
        {
            int smallest = input1[0], place = 0;
            for (int j = 0; j < input2; j++) {
                if ((smallest >= input1[j]) && (input1[j] >= 0)) {
                    smallest = input1[j];
                    place = j;
                }
            }
            input1[place] = -1;
            arrK[i] = smallest;
        }
        int n = input2, i = 0;
        while (i < input3)
        minstones = minstones + arrK[i] * (n - i);
        return minstones;
    }

    public static void main(String[] args) {
        int[] arr = new int[] {
            5, 58
        };
        int stones_min = CandidateCode.ThirstyCrowProblem(arr, 2, 1);
        System.out.println("The result is" + stones_min);
    }
}

光标在等待和等待,但我认为代码中没有错误!??

3 个答案:

答案 0 :(得分:1)

选项A : 将你的同时改为if语句:

if(i<input3) {
    minstones= minstones + arrK[i]*(n-i);
}

选项B :或增加i(i ++),但我不知道你想要什么

while(i<input3) {
    minstones = minstones + arrK[i]*(n-i);
    i++;
}

答案 1 :(得分:0)

你需要在while循环中增加i。因为你没有递增,所以它会进入无限循环。

while(i<input3)
{
    minstones= minstones + arrK[i]*(n-i);
    i++;
}

进行此更改后,我得到了

The result is10

答案 2 :(得分:-1)

谢谢你们! &#34;我++&#34;是缺少的。