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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  problema con ejercicio de agenda con punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con ejercicio de agenda con punteros  (Leído 5,603 veces)
attackers

Desconectado Desconectado

Mensajes: 38


Ver Perfil
problema con ejercicio de agenda con punteros
« en: 16 Noviembre 2011, 22:22 pm »

amigos necesito crear agendas que lleve punteros dinamicos

lo primero que lleva obviamente es ingresar los amigos, nombre, numero de telefono

que elimine 1 amigo

que busque un amigo y apareza su numero de telefono y un listado general que muestre todo los contactos agregado

solo que lleva punteros y no se como hacerlo con punteros


si alguien me da una idea de mas o menos como empezar




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define p printf
#define s scanf


typedef struct agenda{

       char nombre;

       char apellido;

       int edad;

       };
int *puntero;

typedef agenda *puntero;

main()

{
    


      p("\ndiga el nombre de su amigo: ");
      s("%s",agenda.nombre);
      
    
    
      p("\ndiga el apellido de su amigo: ");
      s("%s",agenda.apellido);

       p("\ndiga el numero de telefono de su amigo: ");
       s("%s",agenda.telefono);
      
}


primero trato de hacerlo de 1 amigo pero no tengo ni idea de como hacerlo con puntero y structud


En línea

attackers

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: problema con ejercicio de agenda con punteros
« Respuesta #1 en: 16 Noviembre 2011, 22:23 pm »

si me puede ir orientandolo para ver si lo puedo terminar y aprender hacerlo les agradeceria


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: problema con ejercicio de agenda con punteros
« Respuesta #2 en: 17 Noviembre 2011, 02:03 am »

Si no tienes un libro de calidad ya es hora de conseguir uno, empieza revisando el tema [Libros/Papers] C/C++. El programa tiene varios errores que se describen en detalle en |Lo que no hay que hacer en C/C++. Nivel basico|.

Aparte de eso hay que evitar el uso de macros:
Código
  1. #define p printf
  2. #define s scanf
  3.  
Ello porque si cualquiera ve "printf/scanf" ya sabe de que se trata el asunto, no hay que revisar las definiciones.


Para trabajar con memoria reservada de forma dinámica lo primero que debes hacer es llamar a malloc/calloc/realloc, accedes al objeto utilizando operadores como "->" o "[]" y finalmente liberas la memoria mediante la función "free".

Un empujón:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define NUM_CHARS  128
  5.  
  6. struct agenda {
  7.   char nombre[NUM_CHARS];
  8.   char apellido[NUM_CHARS];
  9.   int edad;
  10.  
  11. };
  12.  
  13. int main(void)
  14. {
  15.    struct agenda *p;
  16.    struct agenda *q;
  17.    int num_regs = 3;
  18.    int i;
  19.    int ch;
  20.  
  21.    /* 1) Reservamos el bloque de memoria */
  22.    if ((p = malloc(num_regs * sizeof *p)) == NULL)
  23.        return EXIT_FAILURE;
  24.  
  25.    /* 2) Leemos los registros */
  26.    q = p;
  27.    for (i = 0; i < num_regs; i++){
  28.        printf("Registro %d\n", i + 1);
  29.  
  30.        printf("Nombre: ");
  31.        fflush(stdout);
  32.        fgets(q->nombre, NUM_CHARS, stdin);
  33.  
  34.        printf("Apellidos: ");
  35.        fflush(stdout);
  36.        fgets(q->apellido, NUM_CHARS, stdin);
  37.  
  38.        printf("Edad: ");
  39.        fflush(stdout);
  40.        scanf("%d", &q->edad);
  41.  
  42.        while ((ch = getchar()) != EOF && ch != '\n')
  43.            ;
  44.  
  45.        q++;
  46.    }
  47.  
  48.    /* 3) Impresion de los registros */
  49.    for (i = 0; i < num_regs; i++){
  50.        printf("Registro %d\n", i + 1);
  51.  
  52.        printf("Nombre: %s\n", p[i].nombre);
  53.        printf("Apellidos:  %s\n", p[i].apellido);
  54.        printf("Edad: %d\n\n", p[i].edad);
  55.    }
  56.  
  57.    /* 4) Liberamos la memoria */
  58.    free(p);
  59.  
  60.    return EXIT_SUCCESS;  
  61. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
attackers

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: problema con ejercicio de agenda con punteros
« Respuesta #3 en: 17 Noviembre 2011, 04:41 am »

amigo mira aqui lo hice de otra forma

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. struct contacto{
  7.       char nombre[40];
  8.       long telefono;
  9.       int edad;
  10.       };
  11.  
  12.     typedef struct contacto tipo_contacto;
  13.  
  14. int contador;
  15. int numerodeamigos;
  16. int mostrar[100];
  17.  
  18. void main(void) {
  19. tipo_contacto c1;
  20.  
  21.  
  22.  
  23. printf("cuantos amigos quiere agregar: ");
  24. scanf("%d",&numerodeamigos);
  25. system("cls");
  26.  
  27.                     for (contador=0; contador<numerodeamigos; contador++)   {
  28.  
  29.  
  30.               printf("ingrese el nombre: ");
  31. fflush(stdin);
  32. gets(c1.nombre);
  33.  
  34.              printf("Ingrese el telefono: ");
  35. fflush(stdin);
  36. scanf("%d",&c1.telefono);
  37.  
  38.               printf("diga su edad: ");
  39. fflush(stdin);
  40. scanf("%d",&c1.edad);
  41.  
  42. system("cls");
  43.          printf("\n");
  44.             printf("-----------------------------------------\n");
  45.  
  46.  
  47.  
  48.         system("pause");
  49.  
  50.  
  51.  
  52. }
  53.  
  54.     printf("El nombre es: %s, \n", c1.nombre);
  55.    printf ("el telefono: %d  \n",c1.telefono);
  56.   printf ("edad es: %d \n",c1.edad");
  57.       system("pause");
  58.          return 0;
  59.     }
  60.  


si me puedes decir que error o que debo mejor

pd: como le puedo hacer un for para que se muestre la cantidades de veces  segun los amigos que quize agregar

Código
  1. for (i=0; i<numerodeamigos; i++)
  2.  
  3.     printf("El nombre es: %s, \n", c1[i].nombre);
  4.    printf ("el telefono: %d  \n",c1[i].telefono);
  5.   printf ("edad es: %d \n",c1[i].edad");

no se si me entienden
« Última modificación: 17 Noviembre 2011, 04:56 am por attackers » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema programando una agenda
Java
Fastolfe 2 4,298 Último mensaje 17 Marzo 2011, 16:02 pm
por Fastolfe
Problema al hacer una Agenda Telefonica en C++ « 1 2 »
Programación C/C++
Y2J 10 17,848 Último mensaje 19 Agosto 2011, 18:21 pm
por Y2J
Problema en agenda con ficheros « 1 2 3 »
Programación C/C++
DickGumshoe 24 9,428 Último mensaje 12 Febrero 2012, 11:48 am
por DickGumshoe
Errores con un ejercicio de registros en el que tengo que crear una agenda. C++
Programación C/C++
seryioo 4 2,002 Último mensaje 8 Septiembre 2015, 19:53 pm
por ivancea96
Nose en que estoy fallando - Ejercicio con Punteros
Programación C/C++
palacio29 1 2,127 Último mensaje 18 Septiembre 2016, 16:59 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines