elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Problema con LISTAS y un switch. en: 4 Julio 2019, 20:49 pm
Estoy empezando a entender listas, tengo el siguiente problema: El menú de opciones vuelve a repetirse indefinidamente luego de devolver "inicio", en vez de volver a solicitar una opción al usuario ¿Qué anda mal?
Código:

/*5 El programa para ubicar un disco de una colección de música que se encuentra ordenada en
estantes debe tener los siguientes datos:
a Nombre el disco
b Grupo musical
c Soporte (vinilo, CD, cassette)
d Año de lanzamiento
e Categorı́a (clásica, jazz, folclore, tango, etc)
f Ubicación (estante en el cual se encuentra)
5.1 La base de datos debe crecer y decrecer dinámicamente.
5.2 Debe permitir buscar y mostrar la búsqueda de cualquiera de los datos miembro.
5.3 Debe permitir el ordenamiento.*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct NODO {
char nombre[31];
char grupo[31];
int year;
char categoria[31];
struct NODO *siguiente;
}NODO;

void crearLista(NODO *);//ASÍ ES *crearLista(), ES UNA FUNCIÓN QUE DEBERÍA DEVOLVER UN PUNTERO A UN TIPO NODO.
//Y en el argumento de la función tenemos que necesita recibir un puntero a un tipo de struct NODO.
int main(){
NODO *inicio=NULL;
int OPTION=0;
puts("Ingrese una opción.\n");


do{
printf("1- AGREGAR ARTISTA A LA LISTA \n2-BUSCAR GRUPO MUSICAL EN LA LISTA\n3-LISTAR TODO LOS DATOS\n4-SALIR\n\n");
scanf("%d", &OPTION);

switch(OPTION){
case 1:
puts("Ingrese los datos del grupo: \n");
crearLista(inicio);
break;
break;
case 2:
puts("NOT AVAIBLE");
break;
case 3:
puts("NOT AVAIBLE");
break;
//default: printf( "Opción no válida\n" );
                //break;
}
  }while(OPTION !=4);
return 0;
}
void crearLista(NODO *inicio){


NODO *ptr, *newNodo;
newNodo= (NODO *) malloc(sizeof(NODO));
if(newNodo==NULL){
printf("OUT OF MEMORY.\n");
}
printf("Nombre:\n ");
gets(newNodo->nombre);
getchar();
printf("Grupo:\n ");
gets(newNodo->grupo);
getchar();
puts("\nAño de lanzamiento: ");
gets(&newNodo->year);
getchar();
puts("\nCategoría: ");
gets(newNodo->categoria);
getchar();
if(inicio==NULL){
newNodo->siguiente=NULL;
inicio=newNodo;

}else{
ptr=inicio;
while(ptr->siguiente!=NULL){
ptr=ptr->siguiente;
}
ptr->siguiente=newNodo;
newNodo->siguiente=NULL;
      }

}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines