Стандарт не говорит, есть ли знак у типа char.
Поэтому stops[templ[i++]] работает неправильно для символов с кодами 128 ... 255.
Стандарт не говорит, что побочный эффект от i++ проявится после присваивания.
Поэтому stops[templ[i++]] = i + 1 может работать как "stops[templ[i]] = i + 1; i = i + 1" или как "stops[templ[i]] = i + 2; i = i + 1" в зависимости от компилятора и опций компиляции.
Хотя тесты это не ловят, исправить надо )))
Зато всё виснет, если сделать char беззнаковым с помощью ключа /J вот так.
cl.exe /J lab_1_0.cpp
https://github.com/Evgueni-Petrov-aka-espetrov/17202/blob/3814ea200c7787858b40525f33543f0e24421efe/Pestereva/lab_1_0.cpp#L10
Стандарт не говорит, есть ли знак у типа char. Поэтому stops[templ[i++]] работает неправильно для символов с кодами 128 ... 255.
Стандарт не говорит, что побочный эффект от i++ проявится после присваивания. Поэтому stops[templ[i++]] = i + 1 может работать как "stops[templ[i]] = i + 1; i = i + 1" или как "stops[templ[i]] = i + 2; i = i + 1" в зависимости от компилятора и опций компиляции.
Хотя тесты это не ловят, исправить надо )))
Зато всё виснет, если сделать char беззнаковым с помощью ключа /J вот так. cl.exe /J lab_1_0.cpp