PHP

Задача про числа в паскале!!

Напишите программу, которая будет читать числа от 1 до n (n читаем заранее) и расставит их в порядке убывания, НО вместо самих чисел их порядковый номер
Пример ввода:
4 (это n)
12
56
13
9
Пример вывода:
2
3
1
4
Банальная сортировка вставками с ДВУМЯ массивами: массивом значений и массивом индексов.
 var
a, b: array [1..1000] of integer;
i, j, n: integer;
begin
read(n);
for i := 1 to n do begin
read(a[i]);
j := i;
while (j > 1) and (a[b[j - 1]] < a[i]) do begin
b[j] := b[j - 1];
dec(j)
end;
b[j] := i
end;
for i := 1 to n do writeln(b[i])
end.
Арсений Несветайло
Арсений Несветайло
99 660
Лучший ответ
Абай Kaсымбеков Я так не умею
Вот пример программы на Python, которая считывает числа и выводит порядковые номера в порядке убывания:

n = int(input("Введите количество чисел: "))
numbers = []
for i in range(n):
number = int(input("Введите число: "))
numbers.append((number, i+1))

numbers.sort(reverse=True)

for number, index in numbers:
print(index)


Программа сначала считывает количество чисел n, а затем считывает n чисел с помощью цикла for. Каждое число добавляется в список numbers вместе со своим порядковым номером, который вычисляется как i+1.

Затем список numbers сортируется в порядке убывания по значениям чисел. При сортировке используется параметр reverse=True, чтобы получить порядковые номера в порядке убывания.

Наконец, программа выводит порядковые номера в отсортированном порядке, перебирая элементы списка numbers с помощью цикла for. Для каждого элемента программа выводит второй элемент кортежа, который содержит порядковый номер.
Андрей Купцов
Андрей Купцов
9 174
program sortNumbers;
var
n, i, j, temp: integer;
arr: array[1..100] of integer;
begin
readln(n);

// чтение чисел и запись их в массив
for i := 1 to n do begin
readln(arr[i]);
end;

// сортировка массива в порядке убывания
for i := 1 to n do begin
for j := i+1 to n do begin
if arr[i] < arr[j] then begin
temp := arr[i];
arr[i] := arr[j];
arr[j] := temp;
end;
end;
end;

// вывод порядковых номеров вместо чисел
for i := 1 to n do begin
for j := 1 to n do begin
if arr[i] = j then begin
writeln(i);
break;
end;
end;
end;
end.
Абай Kaсымбеков От души родной, обнял