// PascalABC.NET 3.3, сборка 1562 от 02.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var s:=a.Distinct.OrderBy(x->x).Reverse.Skip(1); if s.Count>0 then begin var i:=a.FindIndex(t->t=s.First); Writeln('Искомый элемент равен ',a[i],' его порядковый номер ',i+1) end else Writeln('Нет искомых элементов') end.
Пример n= 13 -7 -2 -32 9 21 -31 34 -34 27 -35 11 7 -10 Искомый элемент равен 27 его порядковый номер 9
Сортируем оба массива и проверяем, совпали ли они. Если совпали, то это перестановка. #include <iostream>
int* sorted(int *A, int size) { int *B = new int[size]; for (int i = 0; i < size; ++i) B[i] = A[i]; for (int i = 0; i < size - 1; ++i) { for (int j = i + 1; j < size; ++j) { if (B[i] > B[j]) { int t = B[i]; B[i] = B[j]; B[j] = t; } } } return B; }
bool arr_eq(int *A, int *B, int size) { for (int i = 0; i < size; ++i) { if (A[i] != B[i]) return false; } return true; }