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 }

 

posted @ 2020-02-19 23:00  浪漫主义程序员  阅读(279)  评论(0编辑  收藏  举报