В методе main(String[]) удали(заменить строку на null) элементы из массива strings с одинаковыми строками.
Solution.java
- Solution.java
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Уровень 13
19 апреля 2022, 15:04 решение
public static void main(String[] args) Scanner console = new Scanner([System.in](http://system.in/)); strings = new String[6]; // создаём массив на 6 строк String currentString; //объявляем String переменную для копирования элемента массива. Далее, эта String переменная поможет сравнивать своё значение с остальными строками в массиве.
for (int i = 0; i strings.length; i++) // создаём цикл для заполнения массива элементами, с помощью ввода с консоли методом console.nextLine(). strings[i] = console.nextLine(); > for (int i = 0; i strings.length; i++) // // создаём внешний цикл для прохождения по всем элементам массива.
if (strings[i] == null) // здесь if-условие, что если элемент в массиве является пустым (null), то эту итерацию цикла пропускаем с помощью оператора continue, так как нет смысла сравнивать пустой элемент с другими элементами. continue; // если if-условие сверху верно (то есть элемент массива пустой (null)), то данная итерация цикла пропускается и цикл запускается повторно для перехода на след.элемент.
Уровень 13
19 апреля 2022, 15:04 решение
currentString = new String (strings[i]); // если if-условие сверху ложно, то значение элемента под индексом [ i ] копируется в переменную currentString for (int j = (i + 1); j strings.length; j++) // создаём внутренний цикл для перебора и сравнения переменной currentString с последующими элементами в массиве под индексом [ j ]. if (currentString.equals(strings[j])) // здесь If-условие, что если currentString имеет одинаковое значение с элементом под индексом [ j ], то: strings[i] = null; // значит опустошаем элемент под индексом [ i ] strings[j] = null; // и опустошаем элемент под индексом [ j ], так как они оба имели одинаковое значение > > for (int i = 0; i strings.length; i++) System.out.print(strings[i] + «, «); > > > // Далее, может возникнет вопрос, а почему мы копируем элемент под индексом [ i ] в переменную currentString? Мы же ведь сразу можем опустошить одинаковые элементы [ i ] и [ j ]? ОТВЕТ: Если опустошить элемент [ i ] не копируя в currentString, то мы не сможем сравнить опустошённый элемент [ i ] уже с другими элементами [ j ]. В таком случае компилятор выдаст ошибку. Так что, мы копируем образец элемента [ i ] в currentString, чтобы дальше с его же помощью мы смогли сравнить его значение с другими элементами, вне зависимости что произойдёт c оригинальным элементом [ i ].
Уровень 14
19 апреля 2022, 14:46 решение
«String currentString; //объявляем String переменную счётчик ?» — этой переменной присваивается в дальнейшем значение i-ого элемента массива который будет сравниваться с j-ым элементом. «for (int i = 0; i < strings.length; i++) // создаём цикл для?» — Для того чтобы заполнить созданный нами массив элементами которые потом будут обрабатываться нашей программой. «for (int i = 0; i < strings.length; i++) < // // создаём цикл для?» — Создаем цикл для того чтобы присвоить значение i-того элемента массива нашей переменной и сравнить его с помощью вложенного цикла с остальными элементами массива. + Если элемент массива выбранный в качестве эталона для сравнения уже имеет значение null, от не участвует в сравнении и виток цикла пропускается с помощью: «if (strings[i] == null) // ? continue; // ?» «currentString = new String (strings[i]); // ?» — присваиваем значение i-го элемента массива переменной типа String. это интересный момент ведь если бы просто сравнивали i-й элемент с j-ым, то в какой-то могла бы произойти ситуация при которой мы бы обнулили одинаковые элементы. т.е. ты обнуляешь допустим первый и второй элементы и теперь они null, но внутренний цикл все еще продолжает работу и в качестве эталона теперь null, а это вызывает ошибку работы программы ведь для работы метода equals() необходим чтобы ссылка на элемент не была нулевой. «for (int j = (i + 1); j < strings.length; j++) // создаём цикл для? if (currentString.equals(strings[j])) < // ?» — создаем цикл для перебора всех элементов массива и с равнения их с эталоном, ЕСЛИ они одинаковы то такие два элемента обнуляются, а цикл продолжает работу и все еще сравнивает с эталонным значением записанным в currentString остальные элементы массива на случай если повторяющихся элементов больше двух.
Как проверить процессор
Источник: javarush.com
Как понять как работает программа
В программировании я полный ноль, но мне надо понять, что делает программка, как она работает, по какому пути, в ней есть 4 кнопки
Регистрация: 15.02.2010
Сообщений: 15,410
Обратитесь к авторам программы, дешевле выйдет
Регистрация: 31.05.2010
Сообщений: 13,964
А программа то где? 4 кнопки, это вообще ни о чём. Я могу и 100500 кнопок создать на одной форме с одним обработчиком. И, чё? Приехали?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Регистрация: 19.06.2013
Сообщений: 2,417
А какого цвета кнопки ?
Репутация: полный «0»
Регистрация: 19.06.2013
Сообщений: 2,417
Чего молчишь, Герасим ? Аль задумал недоброе.
Репутация: полный «0»
Последний раз редактировалось zvygin1964; 06.06.2016 в 12:02 .
Регистрация: 19.06.2013
Сообщений: 2,417
Если есть красная кнопка, жми не раздумывая.
Изображения
| The-Fifth-Element.jpg (34.7 Кб, 45 просмотров) |
Репутация: полный «0»
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,266
Гадаю по кнопкам, рассказываю функционал по принтскрину, цена 5000 р.
А если серьезно, то название программы напиши или это собственная программа вашей фирмы (если да то тогда со своими и говори)?
Источник: www.programmersforum.ru
Не могу понять как работает программа.
Здравствуйте люди.Помогите понять как работают фнкции в программе(см. ниже). Учусь по книге Стефана Девидса С++ для чайников 4-е и 5-е издания читаю паралельно чтоб минимум ошибок было в коде.В частности не могу понять как работает функция sumArray( откуда взялся sizeOfArray)и функция displayArray что делает тоже не могу понять. Обьясните для чайников. Учил функции, но все равно не могу понять всего.
В массиве inputValue используется индекс numberOfValue, а для чего и откуда индекс i, ведь его заменяет numberОfValue. Извините.
// ArrayDemo — демонстрирует использование // массивов. Считывает последовательность // целых чисел и отображает их по порядку #include #include #include using namespace std; // объявления прототипов функций int sumArray(int integerArray[], int sizeOfloatArray); void displayArray(int integerArray[], int sizeOfloatArray); int main(int nArg, char* pszArgs[]) < // Описываем счетчик цикла int nAccumulator = 0; cout > integerValue; // если оно отрицательное. if (integerValue < 0) < // . тогда выходим из цикла break; >// . иначе сохраняем число в массиве inputValues[numberOfValues] = integerValue; > // теперь выводим значения и их сумму displayArray(inputValues, numberOfValues); cout // displayArray — отображает элементы массива // integerArray длиной sizeOfloatArray void displayArray(int integerArray[], int sizeOfArray) < cout cout // sumArray — возвращает сумму элементов // целочисленного массива int sumArray(int integerArray[], int sizeOfArray) < int accumulator = 0; for (int i = 0; i < sizeOfArray; i++) < accumulator += integerArray[i]; >return accumulator; >
Здравствуйте люди.Помогите понять как работают фнкции в программе(см. ниже). Учусь по книге Стефана Девидса С++ для чайников 4-е и 5-е издания читаю паралельно чтоб минимум ошибок было в коде.В частности не могу понять как работает функция sumArray( откуда взялся sizeOfArray)и функция displayArray что делает тоже не могу понять. Обьясните для чайников.
Учил функции, но все равно не могу понять всего. В массиве inputValue используется индекс numberOfValue, а для чего и откуда индекс i, ведь его заменяет numberОfValue. Извините.
счетчик i необходим для работы цикла, а именно в цикле перебрать каждый элемент массива «integerArray», а «numberOfValue» это всего лишь параметр который передается при вызове функции и содержит длину массива «integerArray». i не заменяет «numberOfValue» а приближается к значению «numberOfValue» в цикле or (int i = 0; i < sizeOfArray; i++) от 0 до «numberOfValue».
А где тогда вызывается integerArray[], ведь он даже не объявлен и без индекса. Голова от этого всего кругом.Все таки большое спасибо.
Источник: code-live.ru