实例 26

题目

输入星期几的第一个字母来判断一下是星期几,若第一个字母一样,则继续判断第二个字母。

分析

输入第一个字母后进行判断,就可以区分出星期一、星期三、星期五,然后根据第二个输入的字母判断星期二和星期四的区别,星期六和星期天的区别。

实现

  1. import java.util.Scanner;
  2. /**
  3. * Created with IntelliJ IDEA.
  4. *
  5. * @author : cunyu
  6. * @version : 1.0
  7. * @email : 747731461@qq.com
  8. * @website : https://cunyu1943.github.io
  9. * @date : 2021/6/3 23:26
  10. * @project : Java 编程实例
  11. * @package : PACKAGE_NAME
  12. * @className : Example26
  13. * @description :
  14. */
  15. public class Example26 {
  16. public static void main(String[] args) {
  17. Scanner scanner = new Scanner(System.in);
  18. System.out.println("输入首字母");
  19. char first = scanner.next().toUpperCase().charAt(0);
  20. char second;
  21. switch (first) {
  22. case 'M':
  23. System.out.println("星期一");
  24. break;
  25. case 'W':
  26. System.out.println("星期三");
  27. break;
  28. case 'F':
  29. System.out.println("星期五");
  30. break;
  31. case 'T':
  32. System.out.println("请输入第二个字母");
  33. second = scanner.next().toLowerCase().charAt(0);
  34. if (second == 'u') {
  35. System.out.println("星期二");
  36. } else if (second == 'h') {
  37. System.out.println("星期四");
  38. }
  39. break;
  40. case 'S':
  41. System.out.println("请输入第二个字母");
  42. second = scanner.next().toLowerCase().charAt(0);
  43. if (second == 'a') {
  44. System.out.println("星期六");
  45. } else if (second == 'u') {
  46. System.out.println("星期天");
  47. }
  48. break;
  49. default:
  50. break;
  51. }
  52. }
  53. }

结果

那些年,我们一起做过的 Java 课后练习题(26 - 30) - 图1

实例 27

题目

求 100 之内的素数

分析

设定一个标志位 flag,默认为 false 表示素数,一旦为 true,则表示该数不是一个素数,最后打印即可,此处由于每 5 个换行,所以多了一个 count 变量用于计数;

实现

  1. /**
  2. * Created with IntelliJ IDEA.
  3. *
  4. * @author : cunyu
  5. * @version : 1.0
  6. * @email : 747731461@qq.com
  7. * @website : https://cunyu1943.github.io
  8. * @date : 2021/6/4 10:48
  9. * @project : Java 编程实例
  10. * @package : PACKAGE_NAME
  11. * @className : Example27
  12. * @description :
  13. */
  14. public class Example27 {
  15. public static void main(String[] args) {
  16. // 默认是素数
  17. boolean flag = false;
  18. int count = 0;
  19. System.out.println("100 内的素数:");
  20. for (int i = 2; i < 100; i++) {
  21. for (int j = 2; j <= Math.sqrt(i); j++) {
  22. // 能除尽,则表示不是素数,跳出当次内循环
  23. if (i % j == 0) {
  24. flag = true;
  25. break;
  26. } else {
  27. flag = false;
  28. }
  29. }
  30. // 如果是素数,则打印并计数,然后每行打印 5 个
  31. if (flag == false) {
  32. count++;
  33. System.out.print(i + "\t");
  34. if (count % 5 == 0) {
  35. System.out.println();
  36. }
  37. }
  38. }
  39. }
  40. }

结果

那些年,我们一起做过的 Java 课后练习题(26 - 30) - 图2

实例 28

题目

对 10 个数进行排序。

分析

可以用两者方法,将 10 个数放到数组之后,可以利用内置的 Arrays.sort() 方法进行排序,也可以用冒泡排序;

实现

  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. /**
  4. * Created with IntelliJ IDEA.
  5. *
  6. * @author : cunyu
  7. * @version : 1.0
  8. * @email : 747731461@qq.com
  9. * @website : https://cunyu1943.github.io
  10. * @date : 2021/6/4 10:57
  11. * @project : Java 编程实例
  12. * @package : PACKAGE_NAME
  13. * @className : Example28
  14. * @description :
  15. */
  16. public class Example28 {
  17. public static void main(String[] args) {
  18. int[] arr = new int[10];
  19. Scanner scanner = new Scanner(System.in);
  20. for (int i = 0; i < 10; i++) {
  21. System.out.println("输入第 " + (i + 1) + " 个数");
  22. arr[i] = scanner.nextInt();
  23. }
  24. // 1、直接调用内置方法
  25. // Arrays.sort(arr);
  26. // System.out.println("内置方法排序后的数组:" + Arrays.toString(arr));
  27. // 2、冒泡
  28. for (int i = 0; i < 10; i++) {
  29. for (int j = i + 1; j < 10; j++) {
  30. if (arr[i] > arr[j]) {
  31. int tmp = arr[i];
  32. arr[i] = arr[j];
  33. arr[j] = tmp;
  34. }
  35. }
  36. }
  37. System.out.println("冒泡排序后:" + Arrays.toString(arr));
  38. }
  39. }

结果

那些年,我们一起做过的 Java 课后练习题(26 - 30) - 图3

实例 29

题目

求 3 * 3 矩阵对角线元素之和。

分析

定义一个二维数组来存放矩阵元素,然后将对角元素进行相加求和即可(对角线元素的一维和二维索引一样)。

实现

  1. import java.util.Scanner;
  2. /**
  3. * Created with IntelliJ IDEA.
  4. *
  5. * @author : cunyu
  6. * @version : 1.0
  7. * @email : 747731461@qq.com
  8. * @website : https://cunyu1943.github.io
  9. * @date : 2021/6/4 11:07
  10. * @project : Java 编程实例
  11. * @package : PACKAGE_NAME
  12. * @className : Example29
  13. * @description :
  14. */
  15. public class Example29 {
  16. public static void main(String[] args) {
  17. Scanner scanner = new Scanner(System.in);
  18. int[][] matrix = new int[3][3];
  19. System.out.println("输入矩阵元素(共 9 个)");
  20. for (int i = 0; i < 3; i++) {
  21. for (int j = 0; j < 3; j++) {
  22. matrix[i][j] = scanner.nextInt();
  23. }
  24. }
  25. System.out.println("输入的矩阵为:");
  26. for (int i = 0; i < 3; i++) {
  27. for (int j = 0; j < 3; j++) {
  28. System.out.print(matrix[i][j] + "\t\t");
  29. }
  30. System.out.println();
  31. }
  32. // 对角线元素之和
  33. int sum = 0;
  34. for (int i = 0; i < 3; i++) {
  35. for (int j = 0; j < 3; j++) {
  36. if (i == j) {
  37. sum += matrix[i][j];
  38. }
  39. }
  40. }
  41. System.out.println("对角线元素之和:" + sum);
  42. }
  43. }

结果

那些年,我们一起做过的 Java 课后练习题(26 - 30) - 图4

实例 30

题目

有一个已经排好序的数组,现插入一个数,要求按原来的规律将其插入数组中。

分析

假设已经给定一个从小到大排好序的数组,要插入一个数,我们只需要将原数组元素复制到一个新的数组中,然后将要插入的数加入数组,对新的数组进行排序即可!

实现

  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. /**
  4. * Created with IntelliJ IDEA.
  5. *
  6. * @author : cunyu
  7. * @version : 1.0
  8. * @email : 747731461@qq.com
  9. * @website : https://cunyu1943.github.io
  10. * @date : 2021/6/4 11:16
  11. * @project : Java 编程实例
  12. * @package : PACKAGE_NAME
  13. * @className : Example30
  14. * @description :
  15. */
  16. public class Example30 {
  17. public static void main(String[] args) {
  18. int[] arr = new int[]{1, 4, 12, 23, 43, 66};
  19. Scanner scanner = new Scanner(System.in);
  20. System.out.println("给定的数组为:" + Arrays.toString(arr));
  21. System.out.println("输入要插入的元素");
  22. int value = scanner.nextInt();
  23. int[] newArr = new int[arr.length + 1];
  24. for (int i = 0; i < arr.length; i++) {
  25. newArr[i] = arr[i];
  26. }
  27. // 赋值到新数组,然后排序
  28. newArr[arr.length] = value;
  29. Arrays.sort(newArr);
  30. System.out.println("插入元素后的数组为:" + Arrays.toString(newArr));
  31. }
  32. }

结果

那些年,我们一起做过的 Java 课后练习题(26 - 30) - 图5