Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/01/2013, 21:59
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Duda con un programa en C

La funcion scanf solo lee del teclado hasta encontrar un blanco(espacio, tabulador o salto de linea). Si vos ingresas "San Juan" solo en el arreglo de char se almacena "San", el resto se descarta por el fflush(stdin). En vez de scanf usa fgets...


El codigo lo vi muy por encima pero te dejo algunas cosas para modificar:

1 - a diferencia de los arreglos donde la asignacion entre ellos no es posible, con las estructuras si es posible. Es decir se puede hacer algo como:
Código C:
Ver original
  1. struct sucursal aux;
  2. aux=re[0];
Sabiendo esto la funcion listado() se va a reducir bastante

2 - En la funcion modifica(), en la busqueda
Código C:
Ver original
  1. do{
  2. j++;
  3. }while(strcmp(nom,reg2[j].nombre)!=0 && j<5);
primero incrementas a j, lo cual esta mal ya que nunca comparas cuando j es igual a cero(estas omitiendo la posicion 0 de reg2)..
Ademas(suponiendo que la funcion buscar anda bien) cuando haces la modificacion de los datos usas como indice la variable codigo_campo cuando deberias usar j

3 - El ";"(punto y coma) no es necesario despues de una llave de cierre de un bloque


SAludos

PD: usa la Highlight para poner codigo