Cita:
Iniciado por CalgaryCorpus Algunos comentarios a tu programa
- La variable "fin" no es inicializada. Debes saber que en C, no se asegura un valor inicial para las variables locales, por lo que hacer if( fin == 0 ) sin haberle dado un valor inicial es incorrecto (o "peligroso", si quieres)
- Cuando controlas uno de tus ciclos con "pos", es posible que esa variable no haya sido inicializada pues su valor depende de algunas condiciones que no necesariamente se van a cumplir.
y, finalmente, una pregunta..
- Cambia algo el comportamiento de tu programa si en vez de leer numero usando
scanf( "%20s", &numero );
usaras
scanf( "%20s", numero ); // sin el &
?
Hola man; al cambiar el
scanf( "%20s", &numero ) por
scanf( "%20s", numero ) no ha pasado nada y sigue igual; pero al inicializar la variable
fin ya me imprime normal; pero quede como loco
; tu correccion es en cierta parte valida; si miras bien el for de donde depende el valor de la variable
pos es igual al ciclo que de donde depende la variable
fin, osea que si no hay un caracter entre 48 y 57 en el array ninguno de las dos variables va a ser "correcta", y por lo tanto seria un numero no valido y retornaria 0; pero digamos que al introducir un numero "valido" la variable fin ya tendria un valor igual 0 no deberia salir ese error.
Tambien queria preguntarte, el porque cambiaria el comportamiento del programa al usar un scanf sin el & .
De todos modos se arreglo el problema, pero tambien me quedaron dudas.. tambien descubri que hay un
"errorsito" y es que al ingresar una cadena como:
52as23 la posicion seria la[5] y el fin seria [0] y eso lo tomaria como un numero valido y la posicion tambien seria valida.