Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/03/2012, 21:54
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 13 años
Puntos: 94
Respuesta: Problema parametros funcion

Hola cesarbuf! Antes de la respuesta falta un scanf dentro del while(para pedir un nuevo robot) sino estarias generando un ciclo infinito
Código C:
Ver original
  1. while (uno!=2) /* si ponemos exit uno=2 finaliza el programa*/
  2. scanf("%s %s %s",robotx,orden,metros);
  3. .........
Otra cosa importante es cuando declaras int uno; ¿x q importante? cuando por primera vez entras en el while y preguntas uno!=2, lo q enrealidad estas haciendo es preguntar "basura" es distinto de 2 ya que a uno nunca lo inicializaste por ende uno tiene basura lo cual no es una buena practica de programacion. En este caso te conviene definirla con algun valor.

Ahora las respuestas:
Con respecto a que no podes salir con "exit" me parece raro, xq compile el codigo y yo si pude salir bien.

El otro problema no es en la segunda funcion sino en la declaracion de los arreglos robotx, orden y metros con tamaños de 6, 9 y 2, mas q nada en el arreglo metros[2]. Si a metros le ingresas un numero de un solo digito, ej 2, el programa va a andar bien pero si le ingresas , ej 23, va a andar mal ¿x q? Al declarar metros[2] vas a poder usar las posiciones 0 y 1 en el arreglo. Si le ingresas el numero 2 este se va a guardar en la posicion 0 y el caracter '\0' se va a guardar en la posicion 1. Ahora si le ingresas 23, el 2 se va a guardar en la pos. 0 y el 3 en la pos 1, pero el '\0' ¿donde se va a guardar? lo mas probable es q se guarde en el arreglo orden. Es por esto q la segunda funcion no anda como queres

En conclusion: la respuesta solo era que cambies los tamaños de los arreglos, la explicacion era sola para q entiendas xq pasa eso

Espero te sirva la respuesta, saludos