// PascalABC.NET 3.2, сборка 1437 от 03.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк/столбцов в матрице:'); var a:=MatrRandom(n,n,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var ijv:=a.ElementsWithIndexes.Select(x->(x[0],x[1],abs(x[2]))) .MaxBy(x->x[2]); for var i:=ijv[0] to n-2 do a.SwapRows(i,i+1); for var j:=ijv[1] to n-2 do a.SwapCols(j,j+1); SetLength(a,n-1,n-1); a.Println(4) end.
#include <iostream>
using namespace std;
int main () {
int n;
cin >> n;
if (n==0) {
cout << "0 0" << endl << 1 << endl << 1 << endl;
return 0;
}
int mx=0; int mn=10; int mxi=10; int mnk=0; int ind=0;
while (n>0) {
int c=n%10;
n/=10;
if (c>=mx) {
mx=c;
mxi=ind;
}
if (c<mn) {
mn=c;
mnk=1;
} else if (c==mn) {
++mnk;
++ind;
}
}
cout << mx << " " << mn << endl << (ind - mxi) << endl << mnk << endl;
return 0;
}
Объяснение:
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк/столбцов в матрице:');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var ijv:=a.ElementsWithIndexes.Select(x->(x[0],x[1],abs(x[2])))
.MaxBy(x->x[2]);
for var i:=ijv[0] to n-2 do a.SwapRows(i,i+1);
for var j:=ijv[1] to n-2 do a.SwapCols(j,j+1);
SetLength(a,n-1,n-1); a.Println(4)
end.
Пример
Количество строк/столбцов в матрице: 5
87 -5 -38 -9 57
31 66 57 -25 40
11 66 99 -79 91
12 95 93 27 -97
33 -94 14 19 39
87 -5 -9 57
31 66 -25 40
12 95 27 -97
33 -94 19 39