Строка 77 там лишняя (79-я тем более), просто тестировал содержимое ячейки массива color.
Функцию на строке 107-111 нашёл на каком-то сайте, как работает фиг знает, не разбирался, в оригинале в качестве аргументов надо было вводить названия цветов из перечисления, но я перечислимый тип заменил на int, так надо, чтобы пользоваться целочисленным массивом color.

Решение логической ошибки, которая проявлялась при обходе массива id - в строке 53. Пока не найдётся нужное гражданство или не дойдёт до последней ячейки массива - цикл (строка 43) будет повторяться снова и снова.

Вот результат



После ввода сообщения (латинскими буквами - не помню как заставить вводить кириллицей) - цикл на строке 75 стирает всё с консоли и появляется внизу сообщение с нужным цветом:


Суть в том, что свой ID (якобы гражданство) в этом псевдо-чате нужно вводить всегда перед сообщением. После того, как выбрал номер цвета, на повторно потом заданный вопрос "Будем задавать цвет чата?" нужно отвечать нет, иначе снова перейдём к выбору цвета. Если не выбрав (при определённом ID) цвет, то при ответе на вышеуказанный вопрос отрицательно, программа снова отсылает к выбору цвета. Цвета, соответствующие номеру гражданства запоминает, алгоритм отличный, я бы его придумал более громоздким, с четырьмя массивами, вот что значит опыта у меня нет