【发布时间】:2018-08-17 16:25:52
【问题描述】:
public static void Reversed (int[] array){
for (int i = 0; i < array.length / 2; i++){
int temp = array[i];
array[i] = array[array.length - (1 + i)];
array[array.length - (1 + i)] = temp;
}
}
public static void Squared (int[] array){
for (int i = 0; i < array.length; i++){
array[i] = array[i] * array[i];
}
}
public static void main (String[] args){
int[] list = new int[5];
for (int i = 0; i < list.length; i++)
list[i] = (int) (Math.random() * 1001);
System.out.println ("The original set is " + Arrays.toString(list) + ".");
System.out.println ("\nThe largest number is " + Max(list) + ".");
System.out.println ("The smallest numer is " + Min(list) + ".");
Reversed(list);
System.out.println ("The reversed array is " + Arrays.toString(list) + ".");
Squared(list);
System.out.println ("The array squared is " + Arrays.toString(list) +
".");
}
这些方法按预期工作,但输出也会反转平方数,即使它们不应该反转。平方集应该与原始随机生成的集具有相同的顺序。我尝试将 Squared 方法放在 Reversed 方法之前,但它没有任何影响。有没有办法让某种方法“自包含”?
提前致谢!!!
【问题讨论】:
-
我只是尝试在 main 方法中切换 Reversed 和 Squared 的 println,它导致反转的字符串也被平方。所以,我想重新构造我的问题:当我在我的 main 方法中调用以前的方法时,有没有办法使顺序效果无效?
-
您能提供输入和预期输出吗?请注意,不要更改您的初始数组,而不是使用两个静态 void 函数,而是让它们返回一个用于打印列表的新数组,这样您就不会更改数组的结构,因为数组是引用类型而不是值类型。
-
练习 5:设计并实现一个 Java 程序,它定义了如下 4 种方法: int Max(int[] arr) 返回数组中的最大值 int Min(int[] arr) 返回最小值数组中的值 void Reverse(int[] arr) 反转数组 void Squared(int[] arr) 将数组中的每个值更改为 value² 通过在 main() 方法中创建一个长度为 5 的 rand 数组来测试您的方法。您的 main 应该调用每个方法一次,每次调用都使用原始数组作为实际参数。程序中只使用一个数组。所有打印都必须由主来完成。
-
这是作业说明。输入是随机生成的数字,输出只是人口统计数据。而且我们受限于只允许使用一个初始数组。一切都通过我创建的方法工作,但我试图在我的主要方法中取消订单效果。