算法题(31-->35)题目:将一个数组逆序输出...

【程序31】题目:将一个数组逆序输出。

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int a[] = new int[20];
    System.out.println("请输入多个正整数(输入-1表示结束):");
    int i = 0, j;
    do {
        a[i] = s.nextInt();
        i++;
    } while (a[i - 1] != -1);
    System.out.println("你输入的数组为:");
    for (j = 0; j < i - 1; j++) {
        System.out.print(a[j] + "   ");
    }
    System.out.println("\n数组逆序输出为:");
    for (j = i - 2; j >= 0; j = j - 1) {
        System.out.print(a[j] + "   ");
    }
}

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

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.print("请输入一个7位以上的正整数:");
    long a = s.nextLong();
    String ss = Long.toString(a);
    char[] ch = ss.toCharArray();
    int j = ch.length;
    if (j < 7) {
        System.out.println("输入错误!");
    } else {
        System.out.println("截取从右端开始的4~7位是:" + ch[j - 7] + ch[j - 6]
                + ch[j - 5] + ch[j - 4]);
    }
}

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

image.png
public static void main(String[] args) {
    int[][] a = new int[10][10];
    for (int i = 0; i < 10; i++) {
        a[i][i] = 1;
        a[i][0] = 1;
    }
    for (int i = 2; i < 10; i++) {
        for (int j = 1; j < i; j++) {
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
        }
    }
    for (int i = 0; i < 10; i++) {
        for (int k = 0; k < 2 * (10 - i) - 1; k++) {
            System.out.print(" ");
        }
        for (int j = 0; j <= i; j++) {
            System.out.print(a[i][j] + "   ");
        }
        System.out.println();
    }
}

【程序34】题目:输入3个数a,b,c,按大小顺序输出。

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.println("请输入3个整数:");
    int a = s.nextInt();
    int b = s.nextInt();
    int c = s.nextInt();
    if (a < b) {
        int t = a;
        a = b;
        b = t;
    }
    if (a < c) {
        int t = a;
        a = c;
        c = t;
    }
    if (b < c) {
        int t = b;
        b = c;
        c = t;
    }
    System.out.println("从大到小的顺序输出:");
    System.out.println(a + " " + b + " " + c);
}

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

public static void main(String[] args) {
    int N = 8;
    int[] a = new int[N];
    Scanner s = new Scanner(System.in);
    int idx1 = 0, idx2 = 0;
    System.out.println("请输入8个整数:");
    for (int i = 0; i < N; i++) {
        a[i] = s.nextInt();
    }
    System.out.println("你输入的数组为:");
    for (int i = 0; i < N; i++) {
        System.out.print(a[i] + " ");
    }
    int max = a[0], min = a[0];
    for (int i = 0; i < N; i++) {
        if (a[i] > max) {
            max = a[i];
            idx1 = i;
        }
        if (a[i] < min) {
            min = a[i];
            idx2 = i;
        }
    }
    if (idx1 != 0) {
        int temp = a[0];
        a[0] = a[idx1];
        a[idx1] = temp;
    }
    if (idx2 != N - 1) {
        int temp = a[N - 1];
        a[N - 1] = a[idx2];
        a[idx2] = temp;
    }
    System.out.println("\n交换后的数组为:");
    for (int i = 0; i < N; i++) {
        System.out.print(a[i] + " ");
    }
}

你可能感兴趣的:(算法题(31-->35)题目:将一个数组逆序输出...)