У вас переполнение буфера (на самом деле несколько из них).Вы объявляете два массива размером 26 (duze
и male
), но затем продолжаете записывать данные в 27 индексов (от 0 до 26).
Поскольку это выходит за пределы буфера, вытопаете на другую память, которая вызывает непредсказуемое, непредсказуемое поведение.Стандарт C ++ называет это неопределенным поведением : как только вы это сделаете, может произойти абсолютно все: ваша программа может аварийно завершиться, у нее могут быть тонкие ошибки, подобные этой, она может работать правильно или даже стереть вашужесткий диск (хотя это довольно маловероятно).
Чтобы это исправить, измените все свои 27 на 26;Вы также можете увеличить размер массива до 27, но тогда распечатка char(26+'a')
даст вам {
, что, вероятно, не является вашим намерением.