Yahoo Hỏi & Đáp sẽ ngừng hoạt động vào ngày 4 tháng 5 năm 2021 (Giờ Miền Đông nước Mỹ) và từ nay, trang web Yahoo Hỏi & Đáp sẽ chỉ ở chế độ đọc. Các thuộc tính hoặc dịch vụ khác của Yahoo hay tài khoản Yahoo của bạn sẽ không có gì thay đổi. Bạn có thể tìm thêm thông tin về việc Yahoo Hỏi & Đáp ngừng hoạt động cũng như cách tải về dữ liệu của bạn trên trang trợ giúp này.

?
Lv 5
? đã hỏi trong Máy tính & InternetLập trình & Thiết kế · 8 năm trước

Giúp t pascal: Viết chwong trình: nhập n, a1, a2,..,an & xuất ra phần tử lớn nhất thứ 2 của dãy.?

2 Câu trả lời

Xếp hạng
  • 8 năm trước
    Câu trả lời yêu thích

    var a:array[1..100] of integer;

    i,max,max1,n:integer;

    begin

    write('n= ');readln(n);

    for i:=1 to n do begin

    write('a[',i,']= ');readln(a[i]);end;

    max:=a[1];

    for i:=2 to n do

    if a[i]>max then max:=a[i];

    max1:=a[1];

    for i:=1 to n do

    if (a[i]>max1) and (a[i]<max) then max1:=a[i];

    write('phan tu lon thu 2 la: ',max1);

    readln

    end.

    (Các) Nguồn: mình chạy thử rùi, đúng 100%! hihi!
  • Sao lại "xuất ra phần tử lớn nhất thứ 2 của dãy.?" mà phải là "xuất ra phần tử lớn thứ 2 của dãy.?". Làm như bạn ? góp ý đầu tiên ấy chỉ gần đúng thôi. Nếu trong mảng có 1 phần tử thì làm gì có phần tử thứ 2 đúng không bạn hoặc với n>1 nhưng nếu tất cả các phần tử trong mảng có giá trị đều bằng nhau thì cũng làm gì có phần tử lớn thứ 2 đúng không bạn. Vậy chương trình của bạn ? cần thêm câu lệnh trước khi in ra phần tử lớn thứ 2 là: if max<>max1 then writeln(" Phan tu lon thu 2 trong mang la:', max1) else writeln("Khong co phan tu lon thu 2 trong mảng");

Bạn vẫn có câu hỏi? Hãy hỏi ngay để nhận câu trả lời.