Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/10/2008, 04:03
Avatar de calathea
calathea
 
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 3
De acuerdo Respuesta: Problema con un bucle en C

ya conseguí solucionarlo , gracias de todas formas! cuelgo el codigo nuevo por si alguien le habia estado dando vueltas a ver donde podía estar el error!

Código:
#include <stdio.h>

int main()
{
	int opcion, accion;
	int cont=0;
	int counter=0;

	printf("\n\n\t0.\tCancelar operacion");

	printf("\n\n\t1.\tUsuario");
	
	printf("\n\n\t2.\tPuntos de interes");
	
	printf("\n\n\t3.\tParadas");
	
	printf("\n\n\t4.\tTransbordos");
	
	printf("\n\n\t5.\tLineas");
		
	printf("\n\n\n\tIntroduzca el numero de la accion que desea realizar: ");
	scanf("%d", &opcion);

	if(opcion>5)
			{
				printf("\n\n\tSe ha producido un error, por favor vuelva a introducir el numero de la accion que desea realizar: ");
				scanf("%d", &opcion);
			}
	else

		while(opcion<=5 && opcion!=0 && counter<1)
		{
			switch(opcion)
			{
						case 1: printf("\n\n\t0.\tVolver");
								printf("\n\t1.\tAnadir usuario");
								printf("\n\t2.\tMostrar datos del usuario");
								printf("\n\t3.\tModificar datos del usuario");
								printf("\n\n\tElija una opcion: ");
								scanf("%d", &accion);
								counter++;
								if(accion>3)
								{
									printf("\n\tSe ha producido un error, por favor vuelva a elegir una opcion: ");
									scanf("%d", &accion);
								}
								else
									switch(accion)
									{
										case 0: printf("\n\n\t0.\tCancelar operacion");
												printf("\n\n\t1.\tUsuario");
												printf("\n\n\t2.\tPuntos de interes");
												printf("\n\n\t3.\tParadas");
												printf("\n\n\t4.\tTransbordos");
												printf("\n\n\t5.\tLineas");
												printf("\n\n\n\tIntroduzca el numero de la accion que desea realizar: ");
												scanf("%d", &opcion);
												counter--;
												break;
									
										case 1: printf("\n\tHa elegido \"ANADIR USUARIO\"\n\n");
												break;
										
										case 2: printf("\n\tHa elegido \"MOSTRAR DATOS DEL USUARIO\"\n\n");
												break;

										case 3: printf("\n\tHa elegido \"MODIFICAR DATOS DEL USUARIO\"\n\n");
												break;
									}			
								break;	
							
						case 2: printf("\n\n\t0.\tVolver");
								printf("\n\t1.\tAnadir puntos de interes");
								printf("\n\t2.\tMostrar datos de los puntos de interes");
								printf("\n\t3.\tModificar puntos de interes");
								printf("\n\t4.\tEliminar punto de interes");
								printf("\n\n\tElija una opcion: ");
								scanf("%d", &accion);
								counter++;
								if(accion>4)
								{
									printf("\n\tSe ha producido un error, por favor vuelva a elegir una opcion: ");
									scanf("%d", &accion);
								}
								else
									switch(accion)
									{

										case 0:	printf("\n\n\t0.\tCancelar operacion");
												printf("\n\n\t1.\tUsuario");
												printf("\n\n\t2.\tPuntos de interes");
												printf("\n\n\t3.\tParadas");
												printf("\n\n\t4.\tTransbordos");
												printf("\n\n\t5.\tLineas");
												printf("\n\n\n\tIntroduzca el numero de la accion que desea realizar: ");
												scanf("%d", &opcion);
												counter--;
												break;

										case 1:	printf("\n\tHa elegido \"ANADIR PUNTO DE INTERES\"\n\n");
												break;

										case 2: printf("\n\tHa elegido \"MOSTRAR DATOS DE LOS PUNTOS DE INTERES\"\n\n");
												break;

										case 3:	printf("\n\tHa elegido \"MODIFICAR DATOS DE LOS PUNTOS DE INTERES\"\n\n");
												break;

										case 4:	printf("\n\tHa elegido \"ELIMINAR PUNTO DE INTERES\"\n\n");
												break;
									}
								break;
							
						case 3: printf("\n\n\t0.\tVolver");
								printf("\n\t1.\tAnadir parada");
								printf("\n\t2.\tMostrar datos de parada");
								printf("\n\t3.\tModificar datos de parada");
								printf("\n\t4.\tEliminar parada");
								printf("\n\n\tElija una opcion: ");
								scanf("%d", &accion);
								counter++;
								if(accion>4)
								{
									printf("\n\tSe ha producido un error, por favor vuelva a elegir una opcion: ");
									scanf("%d", &accion);
								}
								else
									switch(accion)
									{
										case 0:	printf("\n\n\t0.\tCancelar operacion");
												printf("\n\n\t1.\tUsuario");
												printf("\n\n\t2.\tPuntos de interes");
												printf("\n\n\t3.\tParadas");
												printf("\n\n\t4.\tTransbordos");
												printf("\n\n\t5.\tLineas");
												printf("\n\n\n\tIntroduzca el numero de la accion que desea realizar: ");
												scanf("%d", &opcion);
												counter--;
												break;
								
										case 1:	printf("\n\tHa elegido \"ANADIR PARADA\"\n\n");
												break;
									
										case 2:	printf("\n\tHa elegido \"MOSTRAR DATOS DE PARADA\"\n\n");
												break;
										
										case 3:	printf("\n\tHa elegido \"MODIFICAR DATOS DE PARADA\"\n\n");
												break;
											
										case 4:	printf("\n\tHa elegido \"ELIMINAR PARADA\"\n\n");
												break;
									}
								break;	
							
						case 4: printf("\n\n\t0.\tVolver");
								printf("\n\t1.\tAnadir transbordo");
								printf("\n\t2.\tMostrar datos de transbordo");
								printf("\n\t3.\tModificar datos de transbordo");
								printf("\n\t4.\tEliminar transbordo");
								printf("\n\n\tElija una opcion: ");
								scanf("%d", &accion);
								counter++;
								if(accion>4)
								{
									printf("\n\tSe ha producido un error, por favor vuelva a elegir una opcion: ");
									scanf("%d", &accion);
								}
								else
									switch(accion)
									{
										case 0:	printf("\n\n\t0.\tCancelar operacion");
												printf("\n\n\t1.\tUsuario");
												printf("\n\n\t2.\tPuntos de interes");
												printf("\n\n\t3.\tParadas");
												printf("\n\n\t4.\tTransbordos");
												printf("\n\n\t5.\tLineas");
												printf("\n\n\n\tIntroduzca el numero de la accion que desea realizar: ");
												scanf("%d", &opcion);
												counter--;
												break;
										
										case 1:	printf("\n\tHa elegido \"ANADIR TRANSBORDO\"\n\n");
												break;
									
										case 2:	printf("\n\tHa elegido \"MOSTRAR DATOS DE TRANSBORDO\"\n\n");
												break;
										
										case 3:	printf("\n\tHa elegido \"MODIFICAR DATOS DE TRANSBORDO\"\n\n");
												break;
											
										case 4:	printf("\n\tHa elegido \"ELIMINAR TRANSBORDO\"\n\n");
												break;
									}
								break;	
								
						case 5: printf("\n\n\t0.\tVolver");
								printf("\n\t1.\tAnadir linea");
								printf("\n\t2.\tMostrar datos de linea");
								printf("\n\t3.\tModificar datos de linea");
								printf("\n\t4.\tEliminar linea");
								printf("\n\n\tElija una opcion: ");
								scanf("%d", &accion);
								counter++;
								if(accion>4)
								{
									printf("\n\tSe ha producido un error, por favor vuelva a elegir una opcion: ");
									scanf("%d", &accion);
								}
								else
									switch(accion)
									{
										case 0:	printf("\n\n\t0.\tCancelar operacion");
												printf("\n\n\t1.\tUsuario");
												printf("\n\n\t2.\tPuntos de interes");
												printf("\n\n\t3.\tParadas");
												printf("\n\n\t4.\tTransbordos");
												printf("\n\n\t5.\tLineas");
												printf("\n\n\n\tIntroduzca el numero de la accion que desea realizar: ");
												scanf("%d", &opcion);
												counter--;
												break;
								
										case 1:	printf("\n\tHa elegido \"ANADIR LINEA\"\n\n");
												break;
										
										case 2:	printf("\n\tHa elegido \"MOSTRAR DATOS DE LINEA\"\n\n");
												break;
											
										case 3:	printf("\n\tHa elegido \"MODIFICAR DATOS DE LINEA\"\n\n");
												break;
										
										case 4:	printf("\n\tHa elegido \"ELIMINAR LINEA\"\n\n");
												break;
									}
								break;	
			}
		}
		if(opcion==0 && cont<1)
		{
			printf("\n\n\tLa operacion ha sido abortada\n\n");
			cont++;
		}
}