01/10/2018, 00:49

Xin gợi ý về bài tập liên quan đến mảng và hàm

Các bạn giúp mình với. Viết chương trình tìm số nguyên tố lớn thứ hai trong mảng 1 chiều. Cảm ơn nhiều ạ

pơ phếc viết 03:05 ngày 01/10/2018

mình nghĩ là làm thế này:

  • chạy vòng lặp sắp xếp mảng theo thứ tự tăng dần.
  • đém số phần tử lớn nhất
  • xuất ra vị trí phần tử sau khi đã trừ đi số phần tử đếm ở trên.
Phan Đức Trưởng viết 02:50 ngày 01/10/2018

Mình thì nghĩ là.

  1. Tìm tất cả các số nguyên tố
  2. Gọi max1 max2 là 2 số nguyên tố liên tiếp đầu tiên
  3. Sau đó so sánh và tăng dần lần lượt đến khi nào duyệt hết thì thôi.
pơ phếc viết 03:04 ngày 01/10/2018

nhưng nếu trong mảng có nhiều số lớn nhất thì sao.

Doanh Văn Lương viết 02:55 ngày 01/10/2018

coi như bạn đã tìm được số nguyên tố trong đó nhé.
bạn khởi tạo giá trị 2 biến số giá trị bằng 0.
1 biến là lớn nhất gọi tạm là MAX1,
1 biến là lớn thứ 2 tạm gọi là MAX2.
sau đó so sánh với các số vs MAX1 theo

  • nếu nó lớn hơn thì MAX1 bằng số đó và MAX2 sẽ bằng MAX1 (cũ, trước khi gán MAX1 cho số đang xét)

  • nếu nó không lớn hơn MAX1 thì so sánh tiếp với MAX2, nếu lớn hơn thì MAX2 bằng số đó, ngược lại thì bỏ qua.

đề bài yêu cầu tìm số chứ không tìm vị trí hay số lượng các số nên chắc chỉ cần lấy giá trị là đủ.

HDT viết 03:00 ngày 01/10/2018

Cách giải của mình:

  • dùng vòng lặp tìm số nguyên tố max trong mảng (arr1);
  • tạo một mảng mới (arr2) copy dữ liệu từ mảng arr1 nhưng phần tử nào = số nguyên tố max thì cho bằng 0;
  • lại dùng 1 vòng lặp tìm số nguyên tố max trong mảng mới (arr2);
Phan Đức Trưởng viết 02:51 ngày 01/10/2018

Bác nào viết thẳng một chương trình được không. Thật sự em mới học c. Mấy cái lệnh cứ lồng nhau, viết toàn bị lỗi

Saber Yii viết 02:57 ngày 01/10/2018

cách đơn giản là

  1. Lọc ra tất cả số NT
  2. Sắp xếp tăng dần dãy số NT
  3. Số lượng pt mảng <2 thì báo lỗi k tìm thấy luôn
  4. Tạo biến max lưu giá trị phần tử cuối cùng của mảng
  5. for ngược mảng nếu số nào khác max thì break hoặc return ra luôn.
    (Lưu ý: nếu không tìm được thì xuất lỗi như mục 3 vì có thể có nhiều giá trị = max)
QuangTruong viết 02:53 ngày 01/10/2018

1- Tìm ra tất cả SNT đưa vào mảng A
2- Sắp xếp Giá trị giả dần mảng A
3- duyệt A, check nếu các phần tử bằng A[1] ==> println

Phan Đức Trưởng viết 03:03 ngày 01/10/2018

Làm nào để đưa số tìm được vào mảng vậy. Và gọi mảng ra để duyệt ntn. Mình mới học c nên một số cái chưa rõ

QuangTruong viết 02:55 ngày 01/10/2018

Bạn tạo 1 method kiểu như:
public boolean checkSNT( int a ){//nếu a là SNT return true ngược lại return false };
rồi duyệt mảng ban đầu ,cho từng phần tử vào hàm checkSNT, nếu true thì add vào mảng A

pơ phếc viết 03:04 ngày 01/10/2018

trên này không nhờ làm bài tập bạn ạ chỉ hỏi phương pháp thôi, viết sai thì tìm lỗi viết lại bao giờ đúng thì thôi.

Bài liên quan
0