
java 怎么用Scanner输入两个数组!!!求人指点!!!!!
我想输入两个数组,我写了的code是这样的Scannerinput=newScanner(System.in);Scannerinput1=newScanner(Syst...
我想输入两个数组,我写了的code是这样的
Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
int[] a = new int[50];
int[] b = new int[50];
int[] c;
int i =0;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
System.out.print("\nb:");
while (i<b.length && input1.hasMoreInt())
{
b[i] = input1.nextInt();
System.out.print(b[1] + " " + b[2] );
i++;
但是这样不对,我的b1 b2 b3出来的都是0,我就莫名了,有哪位人可以指点下啊 展开
Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
int[] a = new int[50];
int[] b = new int[50];
int[] c;
int i =0;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
System.out.print("\nb:");
while (i<b.length && input1.hasMoreInt())
{
b[i] = input1.nextInt();
System.out.print(b[1] + " " + b[2] );
i++;
但是这样不对,我的b1 b2 b3出来的都是0,我就莫名了,有哪位人可以指点下啊 展开
展开全部
改成这样试试。有两个问题:1、为什么要用两个键盘输入流input 、input1 ?其实完全用一个键盘输入流就能搞定。虽然你声明了两个键盘输入流,但实际上它们监听的是来自同一个地方的输入。
2、在对a数组完赋值后,i已经变成了50,所以 再对b数组赋值时,这个while (i<b.length && input.hasNextInt())循环,根本就不会进去,b数组根本就不会被赋值。
Scanner input = new Scanner(System.in);
// Scanner input1 = new Scanner(System.in);
int[] a = new int[50];
int[] b = new int[50];
int i =0;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
System.out.print("\nb:");
i = 0;
while (i<b.length && input.hasNextInt())
{
b[i] = input.nextInt();
i++;
}
System.out.print(b[1] + " " + b[2] );
}
2、在对a数组完赋值后,i已经变成了50,所以 再对b数组赋值时,这个while (i<b.length && input.hasNextInt())循环,根本就不会进去,b数组根本就不会被赋值。
Scanner input = new Scanner(System.in);
// Scanner input1 = new Scanner(System.in);
int[] a = new int[50];
int[] b = new int[50];
int i =0;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
System.out.print("\nb:");
i = 0;
while (i<b.length && input.hasNextInt())
{
b[i] = input.nextInt();
i++;
}
System.out.print(b[1] + " " + b[2] );
}
追问
对,是i = 0这个问题,我想再问一个问题,如果我有个int c[],我想要这个c的长度是a+b的长度,我写的是这样的
lenA = a.length;
lenB = b.length;
int[] c = new int[lenA + lenB];
这样出来c就变成100个元素了,因为我写了int[] a= new int[50]
int [] b= new int[50]
我想要的是我输入的个数的综合,不是这个最大限制的综合该怎么办
追答
Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
System.out.println(input.equals(input1));
int[] a = new int[3];
int[] b = new int[3];
int i =0;
int leng=0;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
leng = i;
System.out.print("b:");
i = 0;
while (i<b.length && input1.hasNextInt())
{
b[i] = input1.nextInt();
i++;
}
leng += i; //此时leng的值便是c数组的长度
System.out.print(b[1] + " " + b[2] );
展开全部
int i =0;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
你的变量i 在这里要重新初始化为0.。不然前面输入4次到a[4]那么后面是从b[4]开始输入数据的
自然b[1] b[2] b[3]都是0了。。
System.out.print("\nb:");
while (i<b.length && input1.hasMoreInt())
{
b[i] = input1.nextInt();
System.out.print(b[1] + " " + b[2] );
i++;
System.out.print("a:");
while (i<a.length && input.hasNextInt())
{
a[i] = input.nextInt();
System.out.print(a[i] + " ");
i++;
}
你的变量i 在这里要重新初始化为0.。不然前面输入4次到a[4]那么后面是从b[4]开始输入数据的
自然b[1] b[2] b[3]都是0了。。
System.out.print("\nb:");
while (i<b.length && input1.hasMoreInt())
{
b[i] = input1.nextInt();
System.out.print(b[1] + " " + b[2] );
i++;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的完整代码站出来
看看
看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询