我真的需要帮助我的程序。我想用java做一个累积成绩计算器,使用数组和对话框。不知道为什么,我的数组不能打印出用户的输入,这让我的计算受到影响。我怎样才能给它正确的值?
{
// First array - Length
int[] arNumber = null;
int number;
String str;
// Second array - Elements
int numbers;
int[] arNumbers = null;
int total = 0;
int gradeSum = 0;
String str2;
String message = "How many grades will you input in this class?";
str = JOptionPane.showInputDialog(message);
number = Integer.parseInt(str);
arNumber = new int[number];
for(int index = 0; index < arNumber.length; index++)
{
String message2 = "Insert your grade";
str2 = JOptionPane.showInputDialog(message2);
numbers = Integer.parseInt(str2);
arNumbers = new int[numbers];
}
for (int element : arNumbers)
{
// Print array onto console
System.out.println(element);
// Add all elements
gradeSum += element;
// Print grade onto console
System.out.println(gradeSum);
}
total = gradeSum / arNumber.length;
return total;
}```
看起来你不需要使用两个数组。这一行有 arNumbers = new int[numbers];
也就是说 arNumbers
循环的每次迭代都会被重新初始化为一个新的数组。尝试使用 arNumber[index] = numbers;
将用户输入的值赋值至 arNumber
阵列,并取消 arNumbers
. 然后循环 arNumber
在第二个循环中。
同时注意到 total
被声明为 int
这将截断你的浮点值,我猜你不希望这样。祝您好运!