• в одномерном массиве найти минимальный элемент и удалить его

Ответы 10

  • а можно через сдвиг пожалуйста
  • for (int i = 0; i < 49; i++) a[i] = a[i+1];но не уверентак как такой элемент как 50, все равно есть
    • Автор:

      kentkmgz
    • 6 лет назад
    • 0
  • ну а как полностью будет выглядеть?
  • а размер - не важеня могу сделать за 5-6 строк этоно сути ведь не поменяет
  • Для школьника у Явы плюсов нет - это Ваши фантазии. Что касается "за 5-6 строк" - это тоже в общем случае фантазии, разве что сторонние библиотеки подключать.
  • Плюсы - c++
    • Автор:

      soren38
    • 6 лет назад
    • 0
  • Ок, посмотрим, основной код 5-6 строк.. Ну мб 7
    • Автор:

      clicker
    • 6 лет назад
    • 0
  • 1. С каких про С++ - это для школьника "плюсы"? Разве что только игра слов из за наличия двух плюсов в названии. А с точки зрения освоения языка и программирования на нем - сплошные минусы. 2. Да причем тут "основной код", если программу все равно надо писать полностью? В паскалевском решении тогда вообще две строки основного кода, а можно и одну было сделать.
  • //Javaimport java.util.ArrayList;class Main { public static void main(String[] args) { ArrayList<Integer> a = new ArrayList();/** * Заполнение */ for (int i = 0; i < 50; i++) a.add(i, new java.util.Random().nextInt(100));/** * Пузырь */ for (int i = 0; i < 50; i++) for (int j = 0; j < 50-i-1; j++) if (a.get(j) > a.get(j+1)){ int b = a.get(j); a.set(j, j+1); a.set(j+1, b); } for (int i = 0; i < 50; i++) System.out.print(a.get(i) + " "); System.out.println("---");/** * Удаляем */ a.remove(0); for (int i = 0; i < 50-1; i++) System.out.print(a.get(i) + " "); }}Проверка:1 2 3 4 5 6 7 8 9 10 12 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 96 98---2 3 4 5 6 7 8 9 10 12 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 96 98Так как использовался, само расширяющийся массив, то при удалении, ничего сдвигать не нужно
  • //PascalABC.Net 3.0, сборка 1064const  nn=50;var  a:array[1..nn] of integer;  i,n,imin:integer;begin  Write('Введите количество элементов в массиве: '); Read(n);  Randomize;  Writeln('Исходный массив');  imin:=1;  for i:=1 to n do begin    a[i]:=Random(51)-25;    Write(a[i],' ');    if a[i]<a[imin] then imin:=i;  end;  Writeln;  for i:=imin to n-1 do a[i]:=a[i+1];  Writeln('Массив-результат');  for i:=1 to n-1 do Write(a[i],' '); Writelnend.Тестовое решение:Введите количество элементов в массиве: 15Исходный массив17 -3 22 18 -13 -5 5 -15 -18 23 17 -2 -20 23 2 Массив-результат17 -3 22 18 -13 -5 5 -15 -18 23 17 -2 23 2 А это версия для тех, кто думает, что Паскалю пора давно "на свалку"://PascalABC.Net 3.0, сборка 1064begin  var n:=ReadInteger('Введите количество элементов в массиве');  var a:=SeqRandom(n,-25,25).ToArray();  Writeln('Исходный массив:',#13#10,a);  Writeln('Результат:',#13#10,a.Where(x->x<>a.Min));end.Тестовое решение:Введите количество элементов в массиве 15Исходный массив:[-10,-15,8,-19,9,21,-22,-11,12,14,2,19,-25,-5,-15]Результат:[-10,-15,8,-19,9,21,-22,-11,12,14,2,19,-5,-15]Можно сравнить понятность кода и его размер как со "школьным" решением, так и с программой на Java, приведенной в предыдущем ответе.
    • Автор:

      mooney
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

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

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

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