本文编写于 135 天前,最后修改于 135 天前,其中某些信息可能已经过时。

【程序31】 ArrayConverse.java
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。

package test50;

/**
 * @author VellBibi
 *【程序31】 ArrayConverse.java
 *题目:将一个数组逆序输出。
 *1.程序分析:用第一个与最后一个交换。
 */
public class ArrayConverse {

    public static void arrayConverse(int[] a){
        int cup=0;
        for(int i=0,j=a.length-1; i<j; i++,j--){
            cup = a[i];
            a[i] = a[j];
            a[j] = cup;
        }
    }
    
    public static void printArray(int[] a){
        for(int i=0; i<a.length; i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }
    
    public static void main(String[] args) {
        int[] a = new int[]{1,2,3,4,5};
        printArray(a);
        arrayConverse(a);
        printArray(a);
    }
}

【程序32】 Ex32.java
题目:取一个整数a从右端开始的4~7位。

package test50;

/**
 * @author VellBibi
 *题目:取一个整数a从右端开始的4~7位。
 */
public class Ex32 {

    /**
     * 从a里面取出从右端开始的m~n位
     * @param a
     * @param m
     * @param n
     * @return
     */
    public static int[] getNum(int a, int m, int n){
        int[] ans = new int[n-m+1];
        for(int i=1,j=0; j<ans.length && a>0;i++){
            if(i>=m && i<=n){
                ans[j] = a%10;
                j++;
            }
            a = a / 10;
        }
        return ans;
    }
    
    public static void printArray(int[] a){
        for(int i=a.length-1; i>=0; i--){
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }
    
    public static void main(String[] args) {
        int a = 123456789;
        int[] ns = getNum(a, 4, 7);
        System.out.println(a);
        printArray(ns);
    }
}

【程序33】YangHui.java
题目:打印出杨辉三角形(要求打印出6行如下图)

   1
  1 1
 1 2 1
1 3 3 1

1 4 6 4 1
1 5 10 10 5 1

package test50;

/**
 * @author VellBibi
 *题目:打印出杨辉三角形(要求打印出6行如下图)
 *1.程序分析:
     1
    1 1
   1 2 1
  1 3 3 1
 1 4 6 4 1
1 5 10 10 5 1
 */
public class YangHui {
    
    /**
     * 得到杨辉三角的数组
     * @param n
     * @return
     */
    public static int[][] getArray(int n){
        int[][] a = new int[n][n];
        for(int i=0; i<n; i++){
            for(int j=0; j<=i; j++){
                if(j == 0 || j == i){
                    a[i][j] = 1;
                }else{
                    a[i][j] = a[i-1][j-1] + a[i-1][j];
                }
            }
        }
        return a;
    }
    
    /**
     * 打印等腰三角形
     * @param a
     */
    public static void print(int[][] a){
        for(int i=0; i<a.length; i++){
            for(int j=0; j<a.length-i-1; j++){
                System.out.print(" ");
            }
            for(int j=0; j<a[i].length && a[i][j]>0; j++){
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        print(getArray(6));
    }

}

【程序34】 略 前面更复杂的已经做过了
题目:输入3个数a,b,c,按大小顺序输出

参见【程序15】Sort.java

【程序35】 ArrayChange.java
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

package test50;

/**
 * @author VellBibi
 *【程序35】 ArrayChange.java
 *题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
 */
public class ArrayChange {

    public static void sort(int[] a){//类似冒泡排序
        int cup = 0;
        int l = a.length-1;
        for(int i=1; i<a.length-1; i++){
            if(a[i] > a[0]){
                cup = a[i];
                a[i] = a[0];
                a[0] = cup;
            }
            if(a[i] < a[l]){
                cup = a[i];
                a[i] = a[l];
                a[l] = cup;
            }
        }
    }
    
    public static void printArray(int[] a){
        for(int i=0; i<a.length; i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }
    
    public static void main(String[] args) {
        int[] a = new int[]{2,3,5,1,2,34,1,0,24};
        printArray(a);
        sort(a);
        printArray(a);
    }
}