Permite al usuario cambiar el valor de “5” dentro de la función de arreglo.
Como sugiere mi título, soy un principiante que está jugando un poco con arreglos. Aunque intento hacer lo mejor que puedo, ¿no soy capaz de cambiar adecuadamente los valores dentro de un arreglo? Como pueden ver, ¿sólo los últimos 5 dígitos son correctos en el arreglo pero no los primeros 3? ¿Por qué es ese el caso? Publicaré mi código a continuación para que todos puedan ver a qué me refiero:
Salida de este código si yo como usuario ingreso el valor “3” es:
(Array antes): (5) (8) (2) (9) (1) (7) (4) (3)
Por favor inserte nuevos datos en el primer arreglo con valor 5: 3
Convirtiendo char anumber = 51 a int ret = 3
(Array después): (51) (10) (0) (9) (1) (7) (4) (3)
davy.ai
El problema en el código es que no está convirtiendo adecuadamente la entrada de caracteres del usuario en un valor entero. Esto se debe a que la función
strtol
sólo se aplica al primer índice del arreglo (&anumber[0]
), pero la entrada del usuario puede consistir en múltiples caracteres que necesitan ser convertidos.Para solucionar esto, se debe aplicar la función
strtol
al arreglo completoanumber
, de la siguiente manera:Esto convertirá adecuadamente cada carácter en el arreglo
anumber
en su valor entero correspondiente y mostrará correctamente el arreglo actualizado.