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) +
".");
}
这些方法按预期工作,但输出也会反转平方数,即使它们不应该反转。平方集应该与原始随机生成的集具有相同的顺序。我试着将平方方法放在反转方法之前,但它没有任何影响。有没有办法让一个方法变得“自包含”?
提前感谢!
发布于 2018-03-09 07:23:32
好的,让我来引导你完成你自己的程序。
您正在创建一个随机数数组,到目前为止一切顺利。然后通过调用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) +
".");
}
诚挚的问候。
https://stackoverflow.com/questions/49187989
复制相似问题