Напишите пожалуйста комменты к программе на С++, что к чему скажем

Напишите пожалуйста комменты к программке на С++, что к чему скажем так.
Задание было такое:
Заполните случайным образом массив (100 частей) попеременно бук-вами латинского алфавита от A до H и знаками цифр от 1 до 8. Про-верьте, есть ли в данном массиве записи, схожие с записью ходов коня по шахматной дощечке, и, если есть заполните ими второй массив. Выполните сортировку приобретенных массивов. Для контроля результата сделайте распечатку массивов, в том числе начального.

include
include
include

char string[101]; // вводимое число
char * temp;
char tempWord[1024];

void checkIdentical(char str[])
int i, j, size;
char c;
bool br;

size = strlen(str);

for(i = 0; i lt; size; i++)
c = str[i];
for(j = i + 1; j lt; size; j++)
if(c == str[j])
printf("%s\n", str);
br = !br;
break;


if(br)
break;




int main()


printf("enter\n");
gets(string);

temp = strtok(string, " ");

printf("words with identical letters:\n\n");
for(; temp != NULL;)
strcpy(tempWord, temp);
checkIdentical(tempWord);
temp = strtok(NULL, " ");


return 0;

Задать свой вопрос
Кирилл Ариножин
Во избежание UB необходимо инициализировать br.
Полина
Кстати, всё функции, которые ты используешь, относятся скорее к С, чем к C++.
1 ответ
Сама задача порадовала, написал используя только функции С++. Задание воплотил полностью. 
В прикреплённом файле с нормальным форматированием.

include lt;iostreamgt;
include lt;randomgt;
include lt;vectorgt;
include lt;algorithmgt;


// Обрисовывает шахматную нотацию.
struct Notation;
// Заполняет массив случайными шахматными ходами.
void FillField(std::vectorlt;Notationgt;amp;);
// Поиск в массиве композиций "ход конём".
std::vectorlt;Notationgt; SearchMoves(const std::vectorlt;Notationgt;amp;);
// Поиск вероятных композиций для хода.
std::vectorlt;Notationgt; SearchMoves(const Notationamp;);
// Проверка выхода за границу.
bool CheckMov(const Notationamp;, int, int);
// Выводит массив в поток.
std::ostreamamp; PrintGround(const std::vectorlt;Notationgt;amp;, std::ostreamamp; = std::cout);




int main()

std::vectorlt;Notationgt; field(100);


// Наполняем поле.
FillField(field);

// Выводим начальный массив.
PrintGround(field, std::cout) lt;lt; std::endl;


// Поиск композиций "ход конём".
std::vectorlt;Notationgt; fieldMovs = SearchMoves(field);


// Выводим полученный массив.
PrintGround(fieldMovs, std::cout) lt;lt; std::endl;


// Отсортируем оба массива в порядке возрастания.
std::sort(field.begin(), field.end());
std::sort(fieldMovs.begin(), fieldMovs.end());


// Выводим приобретенные массивы.
PrintGround(field, std::cout) lt;lt; std::endl;
PrintGround(fieldMovs, std::cout) lt;lt; std::endl;


return 0;







// Обрисовывает шахматную нотацию.
struct Notation
unsigned char H;
unsigned int  V;


bool operator==(const Notationamp; rhs) const return ((rhs.H == H) amp;amp; (rhs.V == V));
bool operatorlt;(const Notationamp; rhs) const return ((rhs.H lt; H) ((rhs.H == H)  amp;amp; (rhs.V lt; V)));
;


// Наполняет массив случайными шахматными ходами.
void FillField(std::vectorlt;Notationgt;amp; field)
std::default_random_engine generator;
std::uniform_int_distributionlt;intgt; distribution(1, 8);


for (autoamp; i : field)
i.H = 'a' + distribution(generator) - 1;
i.V = distribution(generator);






// Поиск вероятных композиций для хода.
std::vectorlt;Notationgt; SearchMoves(const Notationamp; stroke)
std::vectorlt;Notationgt; temp;
int x, y;


for (int i = 0; i lt; 8; ++i)
switch (i)
case 0: // Вверх на лево.
y = +3; x = -1;
break;
case 1: // Вверх на право.
y = +3; x = +1;
break;
case 2: // На право вверх.
y = +1; x = +3;
break;
case 3: // На право вниз.
y = -1; x = +3;
break;
case 4: // Вниз вправо.
y = -3; x = +1;
break;
case 5: // Вниз на лево.
y = -3; x = -1;
break;
case 6: // На лево вниз.
y = -1; x = -3;
break;
case 7: // На лево ввысь.
y = +1; x = -3;
break;

// Если ход возможен, добавим его в массив.
if (CheckMov(stroke, x, y))
temp.push_back(Notation stroke.H + x, stroke.V + y );

return std::vectorlt;Notationgt;(temp);



// Проверка выхода за границу.
bool CheckMov(const Notationamp; stroke, int x, int y)
bool isLTBorder = (stroke.H + x gt;= 'a') amp;amp; (stroke.V + y gt;= 1);
bool isRBBorder = (stroke.H + x lt;= 'h') amp;amp; (stroke.V + y lt;= 8);
return (isLTBorder amp;amp; isRBBorder);



// Поиск в массиве композиций "ход конём".
std::vectorlt;Notationgt; SearchMoves(const std::vectorlt;Notationgt;amp; field)
std::vectorlt;Notationgt; possible;


// Все вероятные ходы 1-го элемента.
std::vectorlt;Notationgt; temp = SearchMoves(*field.begin());
for (auto i = field.begin() + 1; i lt; field.end(); ++i)
for (auto u : temp)
// Ход в массиве - есть ход конём.
if (u == *i)
possible.push_back(u);
break;


temp = SearchMoves(*i);



return std::vectorlt;Notationgt;(possible);





// Выводит массив в поток.
std::ostreamamp; PrintGround(const std::vectorlt;Notationgt;amp; field, std::ostreamamp; out)
for (auto i : field)
out lt;lt; i.H lt;lt; i.V lt;lt; " - ";
return out;

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт