所以我正在完成一项任务,并且几乎使用方法并返回。到目前为止我的代码应该打印一个数组中的数字,然后它取这些数字并平均它们。我必须按照给出的确切格式使用我给出的方法,但我不确定为什么平均值出错了。打印521674.2作为平均值显然是错误的。这是我的代码:
public class Statistics
{
public static void main(String[] args)
{
int[] nums = new int[]{5, 2, 1, 6, 7};
printArray(nums);
average(nums);
double store = average(nums);
System.out.println(store);
}
public static void printArray(int[] nums) {
for(int i = 0; i < nums.length; i++){
System.out.print(nums[i]);
}
}
public static double average(int[] values) {
int sum = 0;
double average;
for(int i=0; i < values.length; i++){
sum = sum + values[i];
}
average = (double)sum/values.length;
return average;
答案 0 :(得分:5)
实际上,它打印了数组(52167
),然后是平均值(4.2
)。
为了改善这一点,您可能希望在System.out.println();
的最后设置printArray
,以便输出位于其自己的行上。
您可能还希望有一个分隔符,例如,
,以便打印5,2,1,6,7
。例如:
public static void printArray(int[] nums) {
for (int i = 0; i < nums.length - 1; i++) {
System.out.print(nums[i]);
System.out.print(",");
}
if (nums.length > 0) { // make sure array isn't empty
System.out.println(nums[nums.length - 1]);
}
}
答案 1 :(得分:2)
您的代码没有任何问题。由于输出,你会感到困惑。
如果您对涉及printArray()
的行进行评论,或将其System.out.print()
更改为System.out.println()
,那么您会看到预期的结果。
答案 2 :(得分:1)
目前,您的代码正在打印阵列的内容和平均值在同一行上,两者之间没有空格。删除printArray()调用,您可以看到它只输出平均值4.2
,这是正确的:
public static void main(String[] args) {
int[] nums = new int[] { 5, 2, 1, 6, 7 };
//printArray(nums);
average(nums);
double store = average(nums);
System.out.println(store);
}
答案 3 :(得分:0)
您应该使用.println()而不是print()然后就可以了