Bài viết này mình sẽ hướng dẫn các bạn làm một số bài tập về mảng trong java, giúp các bạn sử dụng mảng một cách linh hoạt hơn.
Bài tập về mảng trong java
Bài toán: Viết chương trình nhập vào một mảng gồm n số nguyên và thực hiện các công việc sau:
- Xuất các giá trị của mảng ra
- Tìm min, max
- Tìm các số nguyên tố có trong mảng
- Sắp xếp mảng theo thứ tự tăng dần
Hướng dẫn làm bài tập về mảng trong java
- Xuất các giá trị của mảng: Các bạn có thể dùng một vòng
for()
để duyệt qua tất cả các phần tử của mảng và in chúng ra. - Tìm min: Các bạn có thể dùng một biến
min
và gán giá trịmin = a[0]
. Sau đó các bạn dùng vòngfor()
để duyệt qua tất cả các phần tử của mảng. Nếu có một phần tử thứ i bé hơn giá trịmin
thì chúng ta gánmin = a[i]
và cứ tiếp tục duyệt như vậy đến hết mảng. Tìm max cũng tương tự như vậy thôi ! - Tìm các số nguyên tố trong mảng: Đầu tiên các bạn tạo một hàm
boolean check(int n)
trả về true nếu n là số nguyên tố, trả về false nếu n không phải là số nguyên tố. Sau đó thực hiện duyệt qua tất cả mảng nếu là số nguyên tố thì ta in ra màn hình. - Số nguyên tố là số chỉ chia hết cho 1 và chính nó. Với định nghĩa đó bạn có thể cho một vòng
for()
chạy từ 2 đến (n-1) chỉ cần n chia hết với bất kì số nào trong đoạn đó thì tareturn false
ngay. Nhưng trên thực tế các bạn chỉ cần chạy từ 2 đếnsqrt( n )
mà thôi . Lưu ý số 1 không phải là số nguyên tố nhé !Với bài toán sắp xếp: Đầu tiên các bạn dùng một vòngfor()
chạy qua hết các phần tử của mảng. Nếu phần tử đứng sau bé hơn phần tử đứng trước thì ta thực hiện đổi vị trí giữa chúng. Như vậy sau một vòngfor()
chúng ta đã đưa số lớn nhất về cuối mảng ( các bạn có thể tự kiểm chứng bằng cách viết trên giấy nhé ! ). Để sắp xếp n số nguyên trong mảng thì ta cần lặp vòng for trên (n-1) lần. Vậy chúng ta sẽ cho hai vòngfor()
lồng nhau để thực hiện công việc trên. - code ở dưới thì tốt hơn hết các bạn nên làm đã. Không nên kéo vội xuống để xem nhé !
Code bài tập
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | import java.io.*; import java.util.Scanner; import java.math.*; public class DemoJava { public static void main(String[] args) { int[] a; int n; Scanner scanner = new Scanner(System.in); System.out.println("Nhap n: "); n = scanner.nextInt(); /*khởi tạo mảng */ a = new int[n]; nhap(a,n); xuat(a,n); /*In ra min max */ System.out.println("Min: " + min(a,n)); System.out.println("Max: " + max(a,n)); /*in so nguyen to ra màn hình */ System.out.print("Cac so nguyen to la: "); for (int i=0;i<n;i++) { if (check(a[i]) ) System.out.print(a[i] + " "); } System.out.println(""); /**gọi hàm sắp xếp * in hàm sau khi sắp xếp */ sapxep(a,n); xuat(a,n); } public static void nhap(int a[],int n){ Scanner scanner = new Scanner(System.in); // tạo đối tượng scanner để nhập System.out.println("Moi nhap vao mang: "); for (int i=0;i<n;i++) a[i] = scanner.nextInt(); } public static void xuat(int a[],int n){ for (int i=0;i<n;i++) System.out.print(a[i] + " "); System.out.println(""); //dùng để xuống hàng } public static int min(int a[],int n){ int min = a[0]; for (int i=1;i<n;i++){ if (a[i] < min) min = a[i]; } return min; } public static int max(int a[],int n){ int max = a[0]; for (int i=1;i<n;i++){ if (a[i] > max) max = a[i]; } return max; } public static boolean check(int n){ if(n<=1) return false; for (int i = 2;i<= Math.sqrt(n); i++) if(n%i==0) return false; //Nếu không chia hết thì trả về true return true; } public static void sapxep(int a[],int n){ for (int i =0;i<n;i++) for (int j=0;j<n-1;j++){ if (a[j] > a[j+1]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; } } } } |
Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi!
nguồn: nguyenvanhieu.vn
0 Nhận xét