Se pide
23.- Se desea tener información almacenada de direcciones de lugares. De cada lugar se
necesita saber el nombre, la calle, la ciudad, la provincia y el código postal. Implemente
utilizando estructuras y registros un programa que permita:
a) Añadir un elemento.
c) Borrar un elemento.
d) Buscar un elemento.
e) Listar todos los datos.
alguien sabria decirme por qué me da error al compilar?
#include <stdio.h>
#include <string.h>
#define MAX 100
typedef struct{
char nombre[10];
char calle[20];
char ciudad [10];
char provincia [10];
int codigo_postal;
}Subject;
int menu(){
int choice;
printf("\n");
printf("--------------------------------------------------------------------------------------------------\n");
printf("\tMENU\n");
printf("\t1.Anadir un elemento\n");
printf("\t2.Borrar un elemento\n");
printf("\t3.Buscar un elemento\n");
printf("\t4.Lista todos los datos\n");
printf("\t5.Salir\n");
printf("Introduzca eleccion: ");
scanf("%d",&choice);
printf("--------------------------------------------------------------------------------------------------\n");
return choice;
}
void anadir (Subject s[],int counter){
if(counter<MAX)
{
fflush(stdin);
printf("Nombre: ");
gets(s[counter].nombre);
printf("\ncalle: ");
gets(s[counter].calle);
printf("\nciudad : ");
gets(s[counter].ciudad);
printf("\nprovincia: ");
gets(s[counter].provincia);
printf("\ncodigo postal: ");
fflush(stdin);
scanf("%d",&s[counter].codigo_postal);
}
else
printf("No puede introducir mas pacientes\n");
}
void borrar (Subject s[], int pos){
int i;
for(i=pos+1;i<MAX;i++){
s[i-1]=s;
}
}
void buscar (Subject s[], int pos){
printf("Nombre: ");
puts(s[pos].nombre);
printf("calle: ");
puts(s[pos].calle);
printf("ciudad: ");
puts(s[pos].ciudad);
printf("provicia: ");
puts(s[pos].provincia);
printf("Codigo postal: %d",s[pos].codigo_postal);
}
void lista (Subject s[],int counter){
int i;
for(i=0;i<=counter;i++){
printf("\n");
puts(s.nombre);
}
}
void main (){
Subject s[MAX];
int counter=0,choice,pos;
choice=menu();
while(choice != 5){
switch(choice)
{
case 1: {anadir(s, counter);
counter++;
break;}
case 2: {printf("Posicion del paciente a borrar: ");
scanf("%d",&pos);
borrar(s, pos);
counter--;
break;}
case 3: {printf("Posicion del paciente a buscar: ");
scanf("%d",&pos);
buscar(s, pos);
break;}
case 4: {lista(s, counter);
break;}
default:printf("Opcion incorrecta\n");
}
choice=menu();
}
}
Este código ya está corregido