Дана матрица размера M× N. Поменять местами столбец с номером N и первый из столбцов, содержащих только отрицательные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений. (C++)
Var ar:array of array of integer; n1,k,i,n2,j:integer; b:boolean; begin; readln(n1); readln(n2); inc(n1); inc(n2); k:=1; setlength(ar,n1+1); while k<>n1 do begin; setlength(ar[k],n2+1); inc(k); end; b:=false; k:=0; i:=1; j:=1; writeln('Matrix:'); while i<>n1 do begin; writeln; while j<>n2 do begin; ar[i,j]:=random(100)-50; write(ar[i,j]:4); inc(j); end; j:=1; inc(i); end; i:=1; j:=1; while i<>n1 do begin; while j<>n2 do begin; if ar[i,j]<0 then b:=true; inc(j); end; if b=false then begin; writeln; writeln(i); exit; end; b:=false; inc(i); j:=1; end; writeln; writeln('Все'); end.
// PascalABC.NET 3.0, сборка 1128 const nmax=100; var n,i,j,nn,nz,np,t:integer; a,an,az,ap:array[1..nmax] of integer; begin // формируем массив и выводим его Write('Количество элементов в массиве: '); Read(n); for i:=1 to n do begin a[i]:=Random(11)-5; Write(a[i],' ') end; Writeln; // разбиваем массив на три подмассива nn:=0; nz:=0; np:=0; for i:=1 to n do if a[i]<0 then begin nn:=nn+1; an[nn]:=a[i] end else if a[i]=0 then begin nz:=nz+1; az[nz]:=a[i] end else begin np:=np+1; ap[np]:=a[i] end; // сортируем массив с отрицательными элементами по убыванию for i:=1 to nn-1 do for j:=1 to nn-1 do if an[j]<an[j+1] then begin t:=an[j]; an[j]:=an[j+1]; an[j+1]:=t end; // сортируем массив с положительными элементами по возрастанию for i:=1 to np-1 do for j:=1 to np-1 do if ap[j]>ap[j+1] then begin t:=ap[j]; ap[j]:=ap[j+1]; ap[j+1]:=t end; // формируем новое содержимое массива a i:=0; for j:=1 to nz do begin i:=i+1; a[i]:=az[j] end; for j:=1 to np do begin i:=i+1; a[i]:=ap[j] end; for j:=1 to nn do begin i:=i+1; a[i]:=an[j] end; // вывод результата for i:=1 to n do Write(a[i],' '); Writeln end.
n1,k,i,n2,j:integer;
b:boolean;
begin;
readln(n1);
readln(n2);
inc(n1);
inc(n2);
k:=1;
setlength(ar,n1+1);
while k<>n1 do
begin;
setlength(ar[k],n2+1);
inc(k);
end;
b:=false;
k:=0;
i:=1;
j:=1;
writeln('Matrix:');
while i<>n1 do
begin;
writeln;
while j<>n2 do
begin;
ar[i,j]:=random(100)-50;
write(ar[i,j]:4);
inc(j);
end;
j:=1;
inc(i);
end;
i:=1;
j:=1;
while i<>n1 do
begin;
while j<>n2 do
begin;
if ar[i,j]<0 then b:=true;
inc(j);
end;
if b=false then
begin;
writeln;
writeln(i);
exit;
end;
b:=false;
inc(i);
j:=1;
end;
writeln;
writeln('Все');
end.