java例题_34 用指正对三个数排序
1 /*34 【程序 34 三个数排序】
2 题目:输入 3 个数 a,b,c,按大小顺序输出。
3 程序分析:利用指针方法。
4 */
5
6 /*分析
7 * 指针方法的本质是按地址传值,将a,b,c存入数组中,再引用数组中的值排列大小,即利用指针的方法排序
8 * */
9
10
11 package homework;
12
13 import java.util.Scanner;
14
15 public class _34 {
16
17 public static void main(String[] args) {
18 // 声明一个大小为3的数组
19 int[] a=new int[3];
20 //从键盘得到3个数,并存入数组中
21 System.out.println("请输入3个整数,并以空格间隔开:");
22 Scanner sc=new Scanner(System.in); //声明一个扫描器
23 String[] s=sc.nextLine().split(" "); //将输入的值全部以字符串形式存入字符串数组中
24 for (int i = 0; i < s.length; i++) {
25 a[i]=Integer.parseInt(s[i]); //将字符串转换为整型存入数组a中
26 }
27 Compare(a);
28 System.out.println("三个数字由大到小排列后为:");
29 for (int i = 0; i < s.length; i++) {
30 System.out.print(a[i]+" ");
31 }
32
33 }
34
35 //比较大小的函数——冒泡排序
36 private static void Compare(int a[]) {
37 //声明一个临时变量
38 int t;
39 //遍历所有的数,将数组中的数由大到小排列
40 for (int i = 0; i < a.length; i++) { //控制比较的进度
41 for (int j = 0; j < a.length-1; j++) { //控制所有的数字相邻两个数字的比较
42 if (a[j]<a[j+1]) { //如果前面的数小于后面的数,交换位置
43 t=a[j];
44 a[j]=a[j+1];
45 a[j+1]=t;
46 }
47 }
48 }
49 }
50 }