Ver Mensaje Individual
  #9 (permalink)  
Antiguo 28/07/2014, 13:28
shikamarucb
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Problema con printf en C

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
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.