spero che il titolo sia chiaro e grazie a alka per avervi detto come fare il post.

codice:
#include <stdio.h> 
#include <iostream>
#include <malloc.h> 
#include <string.h>  
typedef struct {
     char Nome[15];      //nome del contatto
     char Cognome[15];   //cognome del contatto
     char Numeroditelefono [20];   //numero di telefono
     char Indirizzopaginaweb [50]; //indirizzo di pagina web
     char Indirizzoemail [50];    //indirizzo email 
} contatto;            //struttura dell'agenda   

struct record;//struttura con la variabile record  

typedef record * L;//la variabile punta a L  

typedef struct record{//struttura della variabile record
          contatto a[];
         L next; 
} record;    
void push (L c,contatto elem){
      L b;
      L k;
      int n=0;
      b=(L) malloc(sizeof(record));
      b->next=c;
      strcpy(b->a.Cognome,k);
      }                    

void insert(L c,contatto elem[]){
      int s=50;
      int d=0;
      int n=0;
      while ((c!=NULL)&&(!d==0)){
      if(elem>c->a)  c=c->next;
      if(elem<=c->a) d=1;
      }
      if(d==1)push(c,elem[n]);
       for(n=0;n<s;n++){
      printf("\nnome \n");
      scanf("%s",&a[n].Nome);
      strcpy(a[n].Nome,elem[n].Nome);
      printf("\n._._._._._._._._._._._._.\n");
       printf("\ncognome \n");
      scanf("%s",&a[n].Cognome);
      strcpy(a[n].Cognome,elem[n].Cognome);
      printf("\n._._._._._._._._._._._._.\n");
       printf("\nnumero di telefono \n"); 
     scanf("%s",&a[n]Numeroditelefono);         strcpy(a[n]Numeroditelefono,elem[n].Numeroditelefono);      printf("\n._._._._._._._._._._._._.\n");
       printf("\nindirizzo pagina web \n");
      scanf("%s",&a[n].Indirizzopaginaweb);      strcpy(a[n].Indirizzopaginaweb,elem[n].Indirizzopaginaweb);      printf("\n._._._._._._._._._._._._.\n");
       printf("\nindirizzo email \n");
      scanf("%s",&a[n].Indirizzoemail);      strcpy(a[n].Indirizzoemail,elem[n].Indirizzoemail);      printf("\n._._._._._._._._._._._._.\n");
       printf("\n^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^\n");
      }}                   
void ordina(L c,contatto elem[]){
      int n=0;
      char f[50];
      int s=50;
      while(n<s){
      if(strcmp(elem[n].Cognome,elem[n+1].Cognome)>0){

             //scambia Cognomi 
      strcpy(f,elem[n].Cognome);
             strcpy(elem[n].Cognome, elem[n+1].Cognome);
             strcpy(elem[n+1].Cognome, f);

                          //Scambia Nomi
             strcpy(f, elem[n].Nome);
             strcpy(elem[n].Nome, elem[n+1].Nome);
             strcpy(elem[n+1].Nome, f);

                          //Scambia numeri di telefono
             strcpy(f, elem[n].Numeroditelefono);
             strcpy(elem[n].Numeroditelefono, elem[n+1].Numeroditelefono);
             strcpy(elem[n+1].Numeroditelefono,f);
   
                       //Scambia indirizzo di pagina web
             strcpy(f, elem[n].Indirizzopaginaweb);
             strcpy(elem[n].Indirizzopaginaweb, elem[n+1].Indirizzopaginaweb);
             strcpy(elem[n+1].Indirizzopaginaweb,f);

                          //Scambia indirizzo email
             strcpy(f, elem[n].Indirizzoemail);
             strcpy(elem[n].Indirizzoemail, elem[n+1].Indirizzoemail);
             strcpy(elem[n+1].Indirizzoemail, f);
      }}}

void stampa(L c,contatto elem[]){
      int n=0;
      int s=50;
      for(n=0;s<50;n++){
      printf("%s\n%s\n%s\n%s\n%s\n",elem[n].Nome,elem[n].Cognome,elem[n].Numeroditelefono,elem[n].Indirizzopaginaweb,elem[n].Indirizzoemail);
      } }

void leggi(L c,contatto elem[]){
      int n=0;
      int s=50;
      char p[100];
      printf("dammi il cognome che stai cercando");
      scanf("%s",&p);
      for(n=0;n<s;n++){
      if(p==elem[n].Cognome){
      stampa(c,elem);
      }else{
      printf("ERRORE: nessun elemento corrisponde a quello che stai cercando");      }}}                                        
void Cancella(L c,contatto elem){
  L b=c,tmpPunt2;
 while(b!=NULL) {
 tmpPunt2=b->next;
 free(b);
 b=tmpPunt2;
 }
 free(tmpPunt2);
 }                                       
int main (){
         L a;
     int n=0;
     int s=50;
     int q=0,Scelta;
          //scelta del menu     
int z=0,scelta;
          ////////////Menu/////////// 
    do     {
         printf("1. Inserisci nuovo contatto \n");
         printf("2. Visualizza lista contatti \n");
         printf("3. immetti il numero del contatto che stai cercando \n");
         printf("4. elimina contatto \n");
         printf("5. elimina tutta la rubrica \n");
         printf("6. Esci \n");
         scanf("%d",&Scelta);
         system("CLS");
         switch(Scelta)         {
             case 1:
                     insert(c,elem);
                     ordina(c,elem);
                     break;
             case 2:
                     stampa(c,elem);
                     break;
             case 3:
                     printf("Inserisci il nome del contenuto da cui vuoi leggere:
 \n");
                     scanf("%s",elem[n].Cognome);
                     leggi(c,elem);
                     break;
             case 4:
                     do                     {
                     printf("1. elimina il primo contatto \n");
                     printf("2. elimina un contatto qualunque della lista
 \n");
                                        printf("3. elimina un contatto in coda \n");
                     printf("4. Esci \n");
                     scanf("%d",&scelta);
                     system("CLS");
                       switch(scelta){
                                    case 1:
                                             printf("1. elimina il primo contatto \n");
                                             break;
                                    case 2:
                                             printf("1. elimina il primo contatto \n");
                                             break;
                                    case 3:
                                             printf("1. elimina il primo contatto\n");
                                             break;
                      }
                     system("PAUSE");
                     system("CLS");
                    }while(Scelta!=4);
                      break;
             case 5:
                    printf("1. elimina il primo contatto \n");
                    Cancella(c,elem);
                    break;
                  }
         system("PAUSE");
         system("CLS");
     }while(Scelta!=6);
              return 0;
 }




allora ripeto quello detto prima
in questo programma mi da un errore che non riesco a capire nella stringa
scanf("%s",&a[n].Nome);
il compilatore mi segnala che la variabile a non e dichiarata ma io lo dichiarata nella struttura

quindi se qualcuno puo aiutarmi e spiegarmi perchè mi da questo problema mi farebbe un grande piacere
grazie per le vostre risposte in anticipo
e scusatemi se vi sto causando troppi problemi