Java 该代码在哪里失败?两种方法之间的差异
下面是我在一个编码站点中使用的代码。如果我取消注释第一条注释,代码工作正常,但是如果我取消注释第二条代码而不是第一条,代码会产生错误的结果。 我不知道这两者有什么区别。在我看来两者都一样。 请帮助我找到使用第二种方法失败的输入Java 该代码在哪里失败?两种方法之间的差异,java,arrays,Java,Arrays,下面是我在一个编码站点中使用的代码。如果我取消注释第一条注释,代码工作正常,但是如果我取消注释第二条代码而不是第一条,代码会产生错误的结果。 我不知道这两者有什么区别。在我看来两者都一样。 请帮助我找到使用第二种方法失败的输入 Scanner input = new Scanner(System.in); int T = input.nextInt(); while (T-- > 0) { int N = input.nextInt();
Scanner input = new Scanner(System.in);
int T = input.nextInt();
while (T-- > 0) {
int N = input.nextInt();
int C = input.nextInt();
int[] A = new int[N];
// if I use like this code gets accepted
// for (int i = 0; i < N; i++) A[i] = input.nextInt();
int K = 0;
while (C > 0 && K < N) {
// if I use like this code produces wrong result
// A[K] = input.nextInt();
C -= A[K];
K++;
}
String answer = "";
if (C < 0 || K < N) answer = "No";
else answer = "Yes";
System.out.println(answer);
}
input.close();
扫描仪输入=新扫描仪(System.in);
int T=input.nextInt();
而(T-->0){
int N=input.nextInt();
int C=input.nextInt();
int[]A=新的int[N];
//如果我像这样使用,代码就会被接受
//对于(inti=0;i0&&K
这是问题的链接
在第一种情况下,我首先初始化所有数组元素,然后执行检查逻辑
在第二种方法中,我正在初始化并同时使用该值(控件可能跳出循环,并且我不必初始化每个元素)第二种方法在C之后停止读取值。这两行不可能完全相同。循环条件完全不同。清楚地解释你想做什么。@VarunMukundhan我已经添加了一个问题的链接。@Andreas但是C,N和a将在下一次初始化test@Andreas这很有帮助。我只是检查个别案例,这给了我正确的输出。