Imprimir datos de una estructura struct

un gran saludo mi pregunta es teniendo un programa que lo he estado armando poco a poco tengo un problema con imprimir los datos de una estructura llamada contacto ya que solo me imprime un solo registro el punto es que imprima todos los registros que yo haya hecho espero me puedan ayudar
GRACIAS POR SU TIEMPO

 printf("\n\n\t\t 1. Agregar contacto. \n\t\t 2. Consultar contactos. \n\t\t 3. Programar evento. \n\t\t 4. Consultar lista de eventos. \n\t\t 5. SALIR..."); 
 printf("\n\n\t-------------------------------------------------------------\n"); 
 printf("\n\t Selecciona la opcion deseada: "); 
 /*Instrucción que lee una variable de tipo carácter*/ 
 opc=getche();
 switch(opc)//Estructura de seleccion multiple
{ 
 case'1': //instrucciones a ejecutar en el caso a
 do {
 registro contacto; 
 fflush(stdin);//linea para omitir salto de linea a la funcion gets
 printf("\n\n\n\t Apellido(s): ");//impresion en pantalla
 gets(contacto.apellido);
 fflush(stdin);
 printf("\n\t Nombre(s): ");
 gets(contacto.nombre2);
 fflush(stdin);
 printf("\n\t Telefono: ");
 scanf("%d",&contacto.telefono);
 fflush(stdin);
 printf("\n\t e-Mail: ");
 gets(contacto.e_mail); 
 printf("\n\n\t\tEl contacto a quedado registrado...\n\n");
 printf("\n\t\t 1. Ingresar nuevo registro. \n\t\t 2. Regresar al menu.");
 scanf("%i",&r);
 } 
 while(r==1);
 break;
 case'2': //instrucciones a ejecutar en el caso 
 registro contacto;//declaracion de la variable ante la estructura registro
 printf("\n\n\t\tContactos Agregados. ");
 sprintf("\n\n\n\tApellido: %s, \n\tNombre: %s, \n\tTelefono: %d, \n\te-Mail: %s", contacto.apellido,contacto.nombre2,contacto.telefono,contacto.e_mail); 
 printf("\n\n");
 system("pause");
 break;
 

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.