【发布时间】:2018-04-21 11:39:49
【问题描述】:
我一直在尝试获取一个整数数组,但一直失败。我正在尝试在数组中查找缺失的元素。这是我的代码。我在这里做错了什么?
import java.util.Scanner;
public class GFG {
public static void main(String[] args) {
int T,N,i,j=0,k=1;
int C[]= new int[100];
Scanner sc=new Scanner(System.in);
T=sc.nextInt();
for(i=0;i<T;i++)
{
N=sc.nextInt();
for(j=0;j<N;j++)
{
C[j]=sc.nextInt();
}
while(k<=N)
{
if(k==C[j])
{
k++;
j++;
}
else
{
System.out.println(k);
k++;
j++;
}
}
}
sc.close();
}
}
我试图在连续自然数的整数数组中找到缺失的元素
输入:
1 //test cases
4 //array length
1 2 3 5 // array elements
期望的输出:
4
但是输出是
1
2
3
4
比较未执行。为什么?
【问题讨论】:
-
它究竟是如何不断失败的?如果您遇到错误/异常,您需要告诉我们它是什么并显示堆栈跟踪。
-
让我猜,你可能想删除
System.in周围的引号。 -
比较
if(k==C[j])没有任何意义。 C 是一个双精度数组,但 k 是一个 int。我不确定您要做什么。但这可能不是正确的方法。 -
除了stacktrace之外,还请指出stacktriace表示异常来自代码中的哪一行。
-
去掉双引号后程序运行无误
标签: java comparison output comparison-operators