NỘI DUNG BÀI VIẾT
Để tiếp tục với series các bài tập, các bài code Java cơ bản cho người mới, trong bài viết này mình sẽ đưa ra cho các bạn một số dạng bài tập liên quan đến mảng đa chiều, để những bạn mới tiếp cận lập trình không còn sợ khái niệm này nữa nha!
Các bài code Java cơ bản – mảng đa chiều
Đề bài
Ở dưới đây mình có nêu ra một số bài tập về mảng đa chiều. Mức độ các bài tập sẽ được đan xen, có những bài cơ bản để chúng ta có thể tiếp cận dễ hơn và những bài nâng cao hơn chút để có thể hiểu rõ hơn về mảng đa chiều.
Bài tập 1:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x m:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
Bài tập 2:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x m:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tìm giá trị nhỏ nhất có trong mảng và nhỏ nhất.
Bài tập 3:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x m:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tính tổng các phần tử có trong mảng.
Bài tập 4:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x n:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tính tổng các phần tử nằm trên đường chéo chính của mảng.
Bài tập 5:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x n:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tính tổng các phần tử nằm trên đường chéo phụ của mảng.
Lời giải
Nếu các bạn vẫn chưa tìm được lời giải cho các bài tập ở trên hay đã làm xong và muốn đối chiếu lại xem lời giải của mình đã đúng chưa, đã tối ưu chưa mọi người có thể tham khảo ở đây nha.
Bài tập 1:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x m:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Chương trình:
import java.util.Scanner; public class EX1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Nhập n:"); int n = sc.nextInt(); System.out.println("Nhập m:"); int m = sc.nextInt(); int[][] arr = new int[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.printf("Nhập giá trị cho arr[%d][%d]:", i, j); arr[i][j] = sc.nextInt(); } } System.out.println("Hiển thị mảng vừa nhập"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.printf("%8d", arr[i][j]); } System.out.println(); } } }
Bài tập 2:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x m:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tìm giá trị nhỏ nhất có trong mảng và nhỏ nhất
- Chương trình:
import java.util.Scanner; public class EX2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Nhập n:"); int n = sc.nextInt(); System.out.println("Nhập m:"); int m = sc.nextInt(); int[][] arr = new int[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.printf("Nhập giá trị cho arr[%d][%d]:", i, j); arr[i][j] = sc.nextInt(); } } System.out.println("Hiển thị mảng vừa nhập"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.printf("%8d", arr[i][j]); } System.out.println(); } int min = arr[0][0]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (arr[i][j] < min) { min = arr[i][j]; } } } System.out.println("Giá trị nhỏ nhất của mảng: " + min); int max = arr[0][0]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (arr[i][j] > max) { max = arr[i][j]; } } } System.out.println("Giá trị lớn nhất của mảng: " + max); } }
Bài tập 3:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x m:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tính tổng các phần tử có trong mảng.
- Chương trình:
import java.util.Scanner; public class EX3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Nhập n:"); int n = sc.nextInt(); System.out.println("Nhập m:"); int m = sc.nextInt(); int[][] arr = new int[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.printf("Nhập giá trị cho arr[%d][%d]:", i, j); arr[i][j] = sc.nextInt(); } } System.out.println("Hiển thị mảng vừa nhập"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.printf("%8d", arr[i][j]); } System.out.println(); } int sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { sum += arr[i][j]; } } System.out.println("Tổng các phần tử có trong mảng: " + sum); } }
Bài tập 4:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x n:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tính tổng các phần tử nằm trên đường chéo chính của mảng.
- Chương trình:
import java.util.Scanner; public class EX4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Nhập n:"); int n = sc.nextInt(); int[][] arr = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("Nhập giá trị cho arr[%d][%d]:", i, j); arr[i][j] = sc.nextInt(); } } System.out.println("Hiển thị mảng vừa nhập"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%8d", arr[i][j]); } System.out.println(); } int sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) { sum += arr[i][j]; } } } System.out.println("Tổng các phần tử nằm trên đường chéo chính của mảng: " + sum); } }
Bài tập 5:
- Viết chương trình nhập vào mảng 2 chiều có kích cỡ là n x n:
- Hiển thị các mảng 2 chiều vừa nhập dạng ma trận lên màn hình.
- Tính tổng các phần tử nằm trên đường chéo phụ của mảng.
- Chương trình:
import java.util.Scanner; public class EX5 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Nhập n:"); int n = sc.nextInt(); int[][] arr = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("Nhập giá trị cho arr[%d][%d]:", i, j); arr[i][j] = sc.nextInt(); } } System.out.println("Hiển thị mảng vừa nhập"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%8d", arr[i][j]); } System.out.println(); } int sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j == n - i -1) { sum += arr[i][j]; } } } System.out.println("Tổng các phần tử nằm trên đường chéo phụ của mảng: " + sum); } }