Поскольку вы не можете использовать массивы или любую другую структуру данных и алгоритм сортировки, вам нужно будет сделать это вручную с помощью нескольких операторов if
. Прежде чем вы попытаетесь написать какой-либо код, я предлагаю вам попробовать сделать это вручную. Если бы я дал вам четыре слова, как бы вы определили, какое из них стоит первым в алфавитном порядке? Секунда? Продолжать идти; если вы можете описать словами, как вы это делаете, перевод на Java будет простым.
Изменить:
Не беспокойтесь о коде ASCII или о чем-либо, связанном с компьютером в данный момент. Я думаю, вам нужно учитывать тот факт, что compareTo()
позволяет сравнивать только два слова за раз. Допустим, вы выбираете wd1
и wd2
для сравнения. Когда вы сравниваете эти два «слова», каковы возможные результаты? В каждом случае, что вы будете делать дальше?
Еще одно изменение:
После обсуждения в комментариях можно увидеть, что алгоритм здесь примерно такой (в псевдокоде):
if wd1 comes before wd2
if wd1 comes before wd3
if wd1 comes before wd4
print out wd1 // wd1 is the first word in alphabetical order
else
print out wd4 // wd4 is the first word in alphabetical order
else
// Details left as an exercise to the reader
else
// Details left as an exercise to the reader
Завершите заполнение операторов else сначала на английском языке, следуя той же схеме, что и здесь. Когда вы закончите с этим, написание кода на Java должно быть довольно простым.
Как видите, «понимания концепции» часто недостаточно, чтобы начать писать код. Вам нужно время, чтобы выяснить все мучительные детали. Часто мне помогает запись шагов на английском языке с помощью ручки и бумаги (или, может быть, текстового процессора) еще до того, как я начну писать код. (Конечно, вы можете использовать свой собственный родной язык, если это проще. Смысл в том, чтобы НЕ прыгать за компьютер и начинать писать код Java с самого начала, особенно когда вы застряли.)
Когда вы можете описать шаги на своем родном языке, перевод на Java становится проще. Иногда это банально. В других случаях вы сталкиваетесь с деталями, которые не были учтены в вашем описании на естественном языке. Затем вы отступаете от Java и исправляете описание, прежде чем продолжить работу с Java.
Это в основном процесс, который я использую, когда пытаюсь написать компьютерную программу. Надеюсь, вы сможете адаптировать некоторые из этих идей к своему коду.
person
Code-Apprentice
schedule
01.10.2012
{}
s. Обязательно используйте их с каждымif
и каждымelse
, даже если они не требуются. Это поможет вам избежать проблем, которые вы видите сейчас. - person Code-Apprentice   schedule 02.10.2012