Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
crazy

Câu 2 (6,0 điểm): Dãy chẵn lẻ

Yêu cầu: Viết chương trình nhập vào một dãy số nguyên gồm n phần tử. In ra màn hình dãy số đã được sắp xếp như sau:Số lẻ tăng dần ở đầu dãy, số chẵn giảm dần ở cuối dãy

Dữ liệu: Dòng 1: số phần tử của dãy (n ≤105).

               Dòng 2: Các giá trị của dãy (ai<=1018).

Kết quả: Ghi ra màn hình dãy số sau khi sắp xếp.

Ví dụ:

Dữ liệu

 

Kết quả

6

1 6 5 3 8 4

 

1 3 5 8 6 4

 

pascal nha giup mik vs a

Nguyễn Thị Cúc Hoa
29 tháng 3 2024 lúc 10:44

Chương trình có thể như sau:

program SapXepLeChan;
const
  MAX = 100000;
type
  Mang = array[1..MAX] of Int64;
var
  a: Mang;
  n, i, j, temp: integer;
procedure SapXep(var a: Mang; n: integer);
var
  i, j, temp: integer;
begin
  // Sắp xếp số lẻ tăng dần
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if (a[i] mod 2 <> 0) and (a[j] mod 2 <> 0) then
        if a[i] > a[j] then
        begin
          temp := a[i];
          a[i] := a[j];
          a[j] := temp;
        end;
  // Sắp xếp số chẵn giảm dần
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if (a[i] mod 2 = 0) and (a[j] mod 2 = 0) then
        if a[i] < a[j] then
        begin
          temp := a[i];
          a[i] := a[j];
          a[j] := temp;
        end;
end;
begin
  // Nhập dữ liệu
  readln(n);
  for i := 1 to n do
    readln(a[i]);
  // Sắp xếp
  SapXep(a, n);
  // In ra màn hình
  for i := 1 to n do
    writeln(a[i]);
end.