我必须创建一个程序,要求用户输入一系列数字,并将输入保存在数组中。然后,稍后允许用户在数组中搜索数字并打印数组。我被卡住了,因为它不允许我将输入存储在数组中。我还需要帮助打印阵列。
我正在学习Java课程,我们使用的教科书根本没用,有没有人对一本好的Java教科书有任何建议?
到目前为止,这是我的代码:
import java.util.Scanner;
public class MyContainer {
private int [] values;
private int size;
public MyContainer() {
values = new int[50];
size=0;
}
public static void main(String [] args)
{
//load()
Scanner input = new Scanner(System.in);
double sum = 0;
System.out.print("Enter a positive number, negative number will end entry.");
double number = input.nextDouble();
int count = 0;
double average = 0;
int numofinput = 0;
while (number >= 0)
{
count++;
numofinput ++;
sum += number;
System.out.print("Enter a positive number, negative number will end entry.");
number = input.nextDouble();
}
sum = sum + number;
average = sum/numofinput;
System.out.print("The average of the numbers as of right now is "
+ average);
}
//search()
答案 0 :(得分:1)
简要总结我所做的改变:
1)你有3个变量做同样的事情,所以我摆脱了其中2个。 (numOfInputs和count)。
2)您正在通过循环询问用户数字,但您从未将数字添加到数组中。
3)我在循环中添加了一个条件,这样在50个数字之后循环停止,所以你永远不会超过数组的大小。
4)将main的大部分移动到另一个方法。 Java(和大多数其他语言)不允许静态方法访问非静态变量。因此main创建了MyContainer的新实例,然后调用了一个执行添加的方法。
5)我添加了一个打印列表方法,它使用循环遍历列表。
import java.util.Scanner;
公共类MyContainer {
private double[] values;
private int size;
public MyContainer() {
values = new double[50];
size = 0;
}
public void run(){
// load()
Scanner input = new Scanner(System.in);
double sum = 0;
System.out.print("Enter a positive number, negative number will end entry.");
double number = input.nextDouble();
// int count = 0; //计数已移除 double average = 0;
while (number >= 0 && size < values.length) {
values[size] = number; //Line added
size++;
sum += number;
System.out.print("Enter a positive number, negative number will end entry.");
number = input.nextDouble();
}
sum = sum + number;
average = sum / size;
System.out.println("The average of the numbers as of right now is " + average);
}
public void printList(){
System.out.print("[");
for (int i = 0; i <= size; i++){
System.out.print(values[i]+", ");
}
System.out.println("end]");
}
public static void main(String[] args) {
MyContainer cont = new MyContainer();
cont.run();
cont.printList();
}
}
答案 1 :(得分:0)
你真的应该搜索这样的东西,有很多关于如何使用这样的数组的例子:How to put a Scanner input into an array... for example a couple of numbers