您的位置:首页 > 其它

输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

2017-09-16 11:40 453 查看

代码:

import java.util.Scanner;

public class changearray {
public static void main(String[] args) {
System.out.println("请输入6个数,按回车结束:");
Scanner in = new Scanner(System.in);
int[] n=new int[6];
for(int i=0;i<n.length;i++){
n[i]=in.nextInt();
}
int max,min;
max=min=0;
for(int i=1;i<n.length;i++){
if(n[i]>n[max])max=i;
}
System.out.println(min+"  "+max);
change(n,max,0);
for(int i=1;i<n.length;i++){//由于有可能在交换之后马上交换回来,所以此处,更新一下最小值
if(n[i]<n[min])min=i;
}
change(n,min,n.length-1);
for(int i=0;i<n.length;i++){
System.out.print(n[i]+" ");
}
System.out.println();
}

private static void change(int[] n, int max, int i) {
// TODO Auto-generated method stub
int tem=n[max];
n[max]=n[i];
n[i]=tem;
}
}


运行结果:

[bcahlit@bchalit Java]$ javac changearray.java
[bcahlit@bchalit Java]$ java changearray
请输入6个数,按回车结束:
1 2 3 4 5 6
0  5
6 2 3 4 5 1
[bcahlit@bchalit Java]$


总结:

在找出最大值与最小值之后,应该进行移位,然而有时候会出现最大值是最后一个,最小值是第一个,这样在换过来后又重新进行了交换。所以采用找出最大值,交换。然后再找出最小值交换的方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐