@pashulke

Как присвоить значение константе?

Есть задача:

Дана последовательность целых чисел. Отсортируйте ее.Формат входных данных.В первой строке дано целое число n(1<=n<=1000) -
количество элементов последовательности. Во второй строке заданы сами элементы --- целые числа, не превосходящие по абсолютной величине 10^9 .Формат выходных данных.Выведите n чисел --- элементы заданной последовательности в порядке неубывания.


Я не пойму как мне её вообще писать, если к константе нельзя присвоить значение переменной.

var a: array[1..n] of integer;
А n должно ведь быть константным значением, но как это сделать, если значение n я беру из файла?
readln (g, n);
  • Вопрос задан
  • 2292 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Mintormo
Если речь про стандартный Паскаль, то там нет массивов переменной длины. Можно использовать фиксированный массив достаточно большой длины, надеясь что реальные данные будут меньше.
Ответ написан
@SilentFl
1) задаете массив максимальной возможной длины, в данном случае 1000
2) в первой строке у вас задано количество элементов, считываете в переменную
3) сортируете элементы 1..n
4) выводите элементы 1..n
Примерно так:
const M = 1000;
var a: array [1..M] of integer;
  n, i: integer;
function sort(count: integer)
var i,j, tmp: integer;
begin
  for i:=1 to count-1 do
    for j:=i to count-1 do
      if a[j]>a[j+1] then
        tmp:=a[j]; a[j]:=a[j+1]; a[j+1]:=tmp;
      end;
end;
begin
  readln(n);
  for i:=1 to n do read(a[i]);
  sort(1,n);
  for i:=1 to n do write(a[i], ' ');
end.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы