cГіdigo есть ошибка офсет by 1, а именно, цикл работает однажды mГЎs, которого deberГ - в.
относится друг к другу об этом цикле:
for(i=0;i<=sizeof(palindromo);i++){
temp[i]=palindromo[i];
}
sizeof(palindromo)
возвращает тебе tamaГ±o в байт, размещенный для переменной palindromo
, и так как ты заявил Г©sta как array 100 char, результата serГЎ 100 байт. Но положения array в действительности идут с 0
до 99
, из-за которого она condiciГіn for
deberГ, - когда это i<sizeof(palindromo)
, вместо i<=sizeof(palindromo)
.
palindromo
? Как следствие цикл повторяется 101 раз вместо 100. В Гєltima iteraciГіn estГЎs копируя в нее posiciГіn 100 из переменной temp
она posiciГіn 100 из переменной palindromo
. Эти положения в действительности estГЎn уже вне корреспондентов arrays.
Из-за порядка, в котором ты объявил переменные, оказывается, что я участвую в рыцарском турнире despuГ©s, которого я закончил array temp
, начинается array palindromo
, так как локальные переменные сохраняют в батарейке в обратном порядке в, как они высказались.
AsГ - что, когда "ты вытекаешь из-за 1" из array temp
, ты в действительности "входишь" из-за начала array palindromo
. Следовательно, когда ты пишешь что-то в ней posiciГіn 100 из temp
, estГЎs в действительности sobeescribiendo она posiciГіn 0 из palindromo
. Это объясняет, что первый характер "вышел плохо".
В частности то, что ты пишешь в этой posiciГіn, - то, что ты читаешь palindromo[100]
, который также не существует, потому что ты вытек tambiГ©n из этого array. Но в этом случае (из-за того, что первой переменной - palindromo
ее funciГіn) мы не знаем quГ© есть mГЎs allГЎ. SerГЎ другая direcciГіn внутри батарейки, которая не соответствует ни одной из твоих локальных переменных. Возможно состойте та direcciГіn возврата, в том, что может отличаться в каждый ejecuciГіn то, что explicarГ, - которому первый carГЎcter palindromo
изменил из-за "случайной" различной стоимости каждый раз.
, Когда ты используешь strcpy()
проблема, подлатывает, потому что funciГіn он повторяет эту sГіlo до того, чтобы находить завершающего цепи. Не ты copiarГЎ 100 символов, а sГіlo столькие как покажите strlen(palindromo)
, сшейте, что tambiГ©n podrГ-схвати использовать раньше tГє вместо sizeof()
. В этом случае sГ - что tendrГ-эксперт, который должен помещать <=
, так как нужно копировать один carГЎcter mГЎs: завершающий.
Она condiciГіn cambios==1
когда бы то ни было serГЎ верная. nГєmero изменений mГ-nimo 2, так как во время проверения palГ-ndromo ты пробегаешь целую цепь с начала до конца с i
, и с конца сначала с j
. Если характер не совпадает, а именно, если temp[i]!=temp[j]
, это contarГЎs два раза, когда j
и i
обменяются Вашей стоимостью в одной iteraciГіn будущая.