• Дан одномерный массив, сформировать из него двухмерный отсортированный змейкой: Начиная с правого нижнего угла вертикально. Pascal ABC
    Вот код, только здесь выводится с левого угла, а мне нужно с правого:
    uses crt;
    var a:array [1..25] of integer;   
    ar:array [1..25,1..25] of integer;
    i,n,s,j,x:integer;b:real;
    L:boolean;
    begin     
    write('n=');     
    readln(n);     
    writeln('Заполните массив:');     
    For i:=1 to n do readln(a[i]);     
    For i:=1 to n do     
    For j:=i+1 to n do     
    If a[i]>a[j] then begin       
    x:=a[i];       
    a[i]:=a[j];       
    a[j]:=x;     
    end;     
    s:=1;     
    writeln('Отсортированный массив: ');     
    For i:=1 to n do write(a[i], ' ');     
    writeln;     b:=sqrt(n);     
    n:=round(b);     
    writeln('Двумерный массив: ');     
    for j:=1 to n do begin         
    for i:=1 to n do begin             
    ar[i,j]:=s;           
     if (j mod 2 = 0) and (i<>n) then dec(s)             
    else inc(s);         
    end;         
    s:=s+n-1;     
    end;     
    for i:=n downto 1 do begin       
     for j:=1 to n do write(ar[i,j]);         
    writeln;     
    end;
    end.
    Помогите пожалуйста

Ответы 1

  • uses  crt;var  a: array [1..25] of integer;     ar: array [1..5, 1..5] of integer;  i, j, k, n, m, x: integer;begin  write('n=');       readln(n);       writeln('Заполните массив:');       for i := 1 to n do read(a[i]);       for i := 1 to n do         for j := i + 1 to n do           if a[i] > a[j] then begin        x := a[i];               a[i] := a[j];               a[j] := x;           end;       writeln('Отсортированный массив: ');       for i := 1 to n do write(a[i], ' ');       writeln;  n := floor(sqrt(n));  m := sqr(n);  writeln('Двумерный массив: ');  for k := 1 to m do   begin    x := (k - 1) div n;    j := n - x;    if x mod 2 = 0 then      i := n * (x + 1) + 1 - k    else      i := k - n * x;    ar[i, j] := a[k]  end;       for i := 1 to n do   begin    for j := 1 to n do write(ar[i, j]:4);             writeln  endend.Тестовое решение:n=16Заполните массив:1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16Отсортированный массив: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Двумерный массив:   13  12   5   4  14  11   6   3  15  10   7   2  16   9   8   1n=25Заполните массив:1 3 5 7 9 11 2 4 6 8 10 12 14 13 16 17 15 20 18 19 23 25 22 21 24Отсортированный массив: 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 Двумерный массив:   25  16  15   6   5  24  17  14   7   4  23  18  13   8   3  22  19  12   9   2  21  20  11  10   1
    answer img
    • Автор:

      tarsicio
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years