Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: alexander-pedro en 11 Julio 2013, 18:57 pm



Título: ayuda para eliminar un dato de una agenda, en c
Publicado por: alexander-pedro en 11 Julio 2013, 18:57 pm
necesito que me ayuden, con este problema:

estoy creando una agenda en c  y necesito una opcion de eliminar un dato,
digitando el dato nombre de cualquier dato ya ingresado. este es el programa q llevo hasta estos momentos;

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>

struct agenda{
   char nombre[200];
   char telefono[12];
   char cedula[20];
   struct agenda*sig;
}*princ, *fin;
int j=0;

void agregar(){
   struct agenda*nuevo;
   nuevo=(struct agenda*)malloc(sizeof(struct agenda));
   printf("\ndigite su nombre: ");
   fflush(stdin);
   scanf("%s", nuevo->nombre);
   fflush(stdin);
   printf("digite su telefono: ");
   scanf("%s", nuevo->telefono);
   printf("digite su cc: ");
   fflush(stdin);
   scanf("%s", nuevo->cedula);
   nuevo->sig=NULL;

   if(princ==NULL){
      princ=nuevo;
      fin=nuevo;
   }
   else{
      fin->sig=nuevo;
      fin=nuevo;
   }
      j++;

}

void imprimir(){
    printf("\nDATOS AGREGADOS HASTA EL MOMENTO\n");
   struct agenda*aux;
   aux=princ;

   if(aux==NULL){
      printf("agenda vacia vacia");
   }
   else{
      while(aux!=NULL){

         printf("\nnombre: %s", aux->nombre);
         printf("\ntelefono: %s",aux->telefono);
         printf("\ncedula: %s", aux->cedula);
         printf("\n--------------------------------------------\n");
         aux=aux->sig;
      }
   }
}

void eliminar(){
   struct agenda*aux;
   struct agenda*aux1;

   int cont;
   aux=princ;
   aux=princ;

   cont=0;

   while(aux!=NULL){
      if(aux->nombre==aux1->nombre){
         if(cont==0){
            princ=princ->sig;
         }
      }
      aux=aux->sig;
      aux1=aux;
      cont=1;
   }

}

int main(){
   int opc;
   do{
      printf("\n1. ingresar datos a la agenda\n");
      printf("2. mostrar los datos de la agenda\n");
      printf("3. eliminar datos de la agenda\n");
      printf("4. eliminar\n");
      printf("\nintroduce una opcion: ");
      scanf("%d", &opc);
      system("cls");

      switch(opc){
         case 1:
            agregar();
            break;

         case 2:
            imprimir();
            break;

         case 3:
            eliminar();
            break;
         case 4:
            printf("salir");
         break;
      }
   }while(opc<4);
}


Título: Re: ayuda para eliminar un dato de una agenda, en c
Publicado por: Caster en 11 Julio 2013, 23:04 pm
Este post debería de ir en el foro de programación C/C++

http://foro.elhacker.net/programacion_cc-b49.0/

Y para hcaer más legible tu código utiliza las etiquetas Geshi.

Saludos