我正在参加AP java课程。赋值是将两个数组设置为存储多达10,000个整数。这很容易。但那并不是我需要帮助的地方。它有用户输入要存储在每个数组中的数字,一次输入一个整数。输入负数(例如-4)会告诉程序停止在该数组中输入数字。因此,如果你输入-1到arrayone,而不是添加它,它将转移到arraytwo。在数组中,它继续前进到下一位。我遇到麻烦的是输出。这是我的代码:
import java.io.*;
import static java.lang.System.*;
import java.util.Scanner;
import java.lang.Math;
class Main{
public static void main (String str[]) throws IOException {
Scanner scan = new Scanner(System.in);
int arrayone [] = new int[10000];
int arraytwo [] = new int[10000];
{
for (int i = 0; i < arrayone.length; i++)
{
System.out.println("Enter integers ");
while(arrayone[i] >= 0) {
arrayone[i] = scan.nextInt();
}
{
System.out.println("\nEnter the values for the second array, up to 10000 values, enter a negative number to quit");
while(arraytwo[i] >= 0) {
arraytwo[i] = scan.nextInt();
}
}
System.out.println("First Array:\n");
System.out.print(arrayone[i] + " ");
break;
}
}
}
}
虽然还没有完成,但代码在运行时需要有这样的输出:
First Array:
(any entered integers for arrayone in numerical order)
Second Array:
(any entered integers for arraytwo in numerical order)
Merged Array:
(combined integers from arrayone and arraytwo in numberical order)
我的麻烦是这样的:到目前为止,我已将它设置为只输出arrayone中的内容,除了它只输出一个数字:你输入的最后一个....这是一个负数我不会&# 39;想要存储。
我能提供的任何指导都很棒。谢谢!
答案 0 :(得分:1)
你那里有很多curley braces ...我已经剥离了可能有害的牙箍,并给你的代码适当的缩进。更正了循环和退出条件。
您需要处理格式并跟踪打开和关闭括号,括号等。这将使您的代码更容易让其他人遵循并更容易调试。你不要在你分开的每一段代码周围放置大括号。它们只应在特定的地方使用。
class Main
{
public static void main (String[] args) throws IOException
{
Scanner scan = new Scanner(System.in);
int[] arrayone = new int[10000];
int[] arraytwo = new int[10000];
System.out.println("Enter integers ");
int userNumber;
for (int i = 0; i < arrayone.length; i++)
{
arrayone[i] = scan.nextInt();
if (arrayone[i] < 0)
{
break;
}
}
System.out.println("\nEnter the values for the second array, up to 10000 values, enter a negative number to quit");
for (int i=0; i<arraytwo.length; i++)
{
arraytwo[i] = scan.nextInt();
if (arraytwo[i] < 0)
{
break;
}
}
System.out.println("First Array:\n");
for (int i=0; i< arrayone.length; i++)
{
System.out.print(arrayone[i] + " ");
}
System.out.println("Second Array:\n");
for (int i=0; i< arraytwo.length; i++)
{
System.out.print(arraytwo[i] + " ");
}
}
}
我没有为你完成所有的工作,但你现在应该在一个更好的地方自己解决其余问题。
答案 1 :(得分:0)
您需要在循环内打印。该值仅打印一次,因为它位于循环外部,因此它只打印一次。
while(arraytwo[i] >= 0) {
arraytwo[i] = scan.nextInt();
System.out.print(arrayone[i] + " ");
}