Ваш код имеет несколько проблем, некоторые синтаксические и некоторые семантические.Ваш компилятор поможет со многими предыдущими типами, такими как
- неправильное написание имени переменной
vector
в одном месте (хотя, возможно, это было пропущено после фактического редактирования), и - неверный синтаксис для цикла
for
Некоторые компиляторы заметят, что ваш формат scanf
не соответствует соответствующему аргументу.Кроме того, вы можете даже получить предупреждение, указывающее на точки с запятой, которые ошибочно размещаются между заголовками петель и их предполагаемыми телами.Однако я не знаю ни одного компилятора, который бы предупреждал вас о том, что неправильный ввод приведет к тому, что ваш цикл ввода будет вращаться бесконечно.
Но я думаю, что наиболее важной проблемой является то, что детали вашего подхода к печати только недублирующиеся элементы просто не будут служить.Для этой цели я рекомендую выяснить, как описать словами , как компьютер (или человек) должен решить эту проблему, прежде чем пытаться написать C-код для его реализации.Это действительно два разных упражнения, особенно для тех, чье знакомство с Си ограничено.Вы можете рассуждать о прозаическом описании, не отвлекаясь и не отвлекаясь на синтаксис Си.
Например, вот несколько слов, которые могут подойти:
- Рассмотрим каждый элемент E измассив в свою очередь, от первого к последнему.
- Проверьте все элементы, предшествующие E в массиве, на наличие элемента с одинаковым значением.
- Если ни один из элементов до E не содержит одинаковое значениетак как E, то E содержит первое появление его значения, поэтому выведите его.В противном случае значение E уже было напечатано при обработке какого-либо предыдущего элемента, поэтому не печатайте его снова.
- Рассмотрите следующий E, если таковой имеется (вернитесь к шагу 1).