• Пишет "Ошибка времени выполнения: System.IndexOutOfRangeException: Индекс находился вне границ массива." и не выводит отсортированный массив. Что делать?

    //Ввести кол-во эл-тов n одномерного массива целого типа и сгенерировать массив в диапазоне [-70,80]. Требуется:
    //1 Вывести сгенерированный массив в отдельной строке, найти max и min эл-ты и поменять их местами
    //2 Отсортировать полученный массив по убыванию и вывести в 3-ей строке
    program dz1;
    var
    x:array[1..100]of integer;
    i,max,min,n,t,buf,k:integer;
    begin

    write('Введите кол-во эл-тов n:');readln(n);

    for i:=1 to n do
    begin
    x[i]:=random(106)-35;
    end;
    writeln('вывод сген. массива');
    for i:=1 to n do write (x[i],' ');
    writeln;
    writeln;

    //1
    writeln('Поиск max: ');
    max:=x[1];
    for i:=2 to n do
    if (maxx[i])then
    begin
    min:=x[i];
    end;

    writeln('min=',min);
    writeln('max=',max);
    t:=x[max];
    x[max]:=x[min];
    x[min]:=t;

    //2
    for i:=1 to n-1 do
    begin
    for k:=1 to n-1 do
    begin
    if x[k] < x[k+1] then
    begin
    buf:=x[k];
    x[k]:=x[k+1];
    x[k+1]:=buf;
    end;
    end;

    end;
    writeln;
    writeln('Массив отсортирован');

    for k:=1 to n do write(x[k],' ');
    readln;

    for k:=1 to n-1 do
    read(x[n]);
    readln(x[n]);

    end.

    Заранее спасибо.

Ответы 4

  • Огромное спасибо!
  • Полалуйста. Используйте кнопочку Спасибо )
    • Автор:

      bishop
    • 6 лет назад
    • 0
  • *Пожалуйста
    • Автор:

      baxter5
    • 6 лет назад
    • 0
  • program dz1;varx:array[1..100]of integer;i,max,min,n,t,buf,k:integer;beginwrite('Введите кол-во эл-тов n:');readln(n);for i:=1 to n do x[i]:=random(151)-70;writeln('вывод сген. массива');for i:=1 to n do write (x[i],' ');writeln;writeln;//1writeln('Поиск max и min: ');max:=1; min:=1;for i:=2 to n dobeginif (x[max]<x[i])then max:=i;if (x[min]>x[i])then min:=i;end;writeln('min=',x[min]);writeln('max=',x[max]);t:=x[max];x[max]:=x[min];x[min]:=t;//2for i:=1 to n-1 do for k:=1 to n-i do  if x[k] < x[k+1] then begin buf:=x[k]; x[k]:=x[k+1]; x[k+1]:=buf;end;writeln;writeln('Массив отсортирован');for i:=1 to n do write(x[i],' ');writeln;end.Пример:Введите кол-во эл-тов n:15вывод сген. массива32 -38 -35 53 -50 31 66 16 5 28 64 -11 20 -43 -1Поиск max и min:min=-50max=66Массив отсортирован66 64 53 32 31 28 20 16 5 -1 -11 -35 -38 -43 -50
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years