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) +
".");
}
这些方法按预期工作,但输出也会反转平方数,即使它们不应该反转。平方集应该与原始随机生成的集合的顺序相同。我尝试将平方方法放在反向方法之前,但它没有任何影响。有没有办法使一种方法"自成一体"?
提前谢谢!!
让我指导你完成你自己的程序。
您正在创建一个随机数数组,到目前为止一切顺利。然后你通过调用 Reversed()
反转列表,数组被反转,也很好。排在第三位,您通过调用 Squared()
来对数组的数字进行平方,这也确实有效。
现在想想,你已经反转了一次数组,为什么不能用同样的方法再反转一次呢?因为那是,用什么方法!它们不仅使您的代码更具可读性,还允许您一遍又一遍地重用同一段代码。
关于这一点,您可以在将平方数组打印到屏幕上之前第二次调用Reversed()
:
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) + ".");
Reversed(list);
System.out.println ("The reversed array is " + Arrays.toString(list) + ".");
Squared(list);
Reversed( list );
System.out.println ("The array squared is " + Arrays.toString(list) +
".");
}
此致敬意。