int RowWithMax(double m[n][n], int j)
{
double max_el = m[j][j];
int max_i = j;
for (int i = j; i < n; i++)
{
if (abs(m[i][j]) > abs(max_el))
{
max_el = m[i][j];
max_i = i;
}
}
return max_i;
}
void RowChange(double m[n][n], double f[n], int i1, int i2)
{
for (int j = 0; j < n; j++)
{
/*m[i1][j] = m[i1][j] + m[i2][j];
m[i2][j] = m[i1][j] - m[i2][j];
m[i1][j] = m[i1][j] - m[i2][j];*/
swap(m[i1][j], m[i2][j]);
}
swap(f[i1], f[i2]);
}
double StraightRun(double m[n][n], double f[n], int i) //прямой метод
{
double el;
double det = 1;
int reverse = 0;
int max_i = RowWithMax(m, i);
if (i != max_i)
{
RowChange(m, f, i, max_i);
//reverse++;
det *= (-1);
}
el = m[i][i];
det *= el;
f[i] /= el;
for (int i1 = n - 1; i1 >= i; i1--)
{
m[i][i1] /= el;
}
for (int i2 = i + 1; i2 < n; i2++)
{
el = m[i2][i];
f[i2] -= f[i] * el;
for (int j = n - 1; j >= i; j--)
{
m[i2][j] -= el * m[i][j];
}
}
return det/**pow(-1, reverse)*/;
}
программа с комментариями, если все равно не понятно спрашивай
для проверки программы рекомендую n поставить где нибудь на 10 потому что вводить 1000 чисел с клавиатуры то еще удавольствие :))
числа можно вводить по одному или одной строкой через пробел
const
n = 1000; // длина массива
var
d : array of integer := new integer[n]; // объявляем и создаем массив
a, b : integer;
begin
// вводим числа в массив //
writeln('введите данные в массив:');
for var i := 0 to n-1 do begin
read(a);
d[i] := a;
end;
writeln('введен массив d=', d); // выводим массив на экран
// переворачиваем данные в массиве //
// для этого меняем первое с последним, второе с предпоследним //
// и так до середины //
for var i := 0 to (n div 2)-1 do begin
a := d[i];
d[i] := d[n-i-1];
d[n-i-1] := a;
end;
writeln('переворачиваем массив d=', d); // выводим перевернутый массив
write('числа у которых первая цифра больше последней:');
// ищем и ввыводим числа с заданным условием //
for var i := 0 to n-1 do begin
// находим чему равна 1 цифра //
b := d[i];
repeat
b := b div 10;
until b < 10;
if b > d[i] mod 10 then write(' ', d[i]); // сравниваем первую и последнюю цифры и ели первая больше то выводим число
end;
end.