Дан двумерный массив, элементы которого - целые числа. вставьте новый столбец, каждый элемент которого число ноль, перед всеми столбцами, в которых встречается заданное число x. формат входных данных в первой строке входного файла даны три числа: n, m и x (-1000 \le x \le 1000), где n - количество строк в массиве, а m - количество столбцов (1 \le n, m \le 100). в следующих n строках находится по m чисел, по абсолютному значению не превосходящих 1000. формат выходных данных в выходной файл выведите полученный массив. при выводе разделяйте элементы массива пробелами и строк. вход 2 2 2 1 2 1 -2 выход 1 0 2 1 0 -2

Зюна Зюна    1   17.08.2019 21:20    3

Ответы
dodmitry dodmitry  05.10.2020 01:39
//PascalABC.NET 3.2 сборка 1318

Var
  ma,mabuf:array of array of integer;
  i,j,n,m,x,mark,k,h,newm,kar:integer;
begin
readln(n);
readln(m);
newm:=m;
readln(x);
setlength(ma,n);
setlength(mabuf,n);
for i:=0 to n-1 do
  begin
    setlength(ma[i],m);
    setlength(mabuf[i],m);
  end;
for i:=0 to n-1 do
  for j:=0 to m-1 do
    readln(ma[i][j]);
kar:=-1;
for j:=0 to m-1 do
  begin
    inc(kar);
    for i:=0 to n-1 do 
     if ma[i][j]=x then
        begin
        inc(newm);
        for h:=0 to n-1 do
          setlength(mabuf[h],newm);
          for h:=0 to n-1 do
            mabuf[h][kar]:=0;
        inc(kar);
        break;
        end;
    for i:=0 to n-1 do
      mabuf[i][kar]:=ma[i][j];
  end;
for i:=0 to n-1 do
setlength(ma[i],newm);
writeln;
for i:=0 to n-1 do
  begin
    for j:=0 to newm-1 do
      begin
        ma[i][j]:=mabuf[i][j];
        write(ma[i][j],' ');
      end;
    writeln;
  end;
end.

Пример ввода:
2 2 2
1 2
1 -2
Пример вывода:
1 0 2
1 0 -2
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика