O programa abaixo mostra um claro exemplo de como criar e declarar structs aninhadas,
Criei algumas estruturas, sendo duas aninhadas, más para não crescer muito o tópico,me calo aos comentários, ficando por conta dos interessados procurar entender como tudo foi feito.
Eis algumas imagens do Programa em Execução:
#include <stdio.h>
#include <string.h>
#include <conio.h>
void got_color ( int tam_lin_ini , int tam_lin_fim , int tam_ini_col ,
         int tam_fim_col , int a , int b ) {
     int i, e;
     if ( a >= 1 && a <= 16 ) {
         textcolor ( a );
     }
     if ( b >= 1 && b <= 16 ) {
         textbackground ( b );
     }
     for ( i = tam_lin_ini; i < tam_lin_fim ; i++ ) {
         for ( e = tam_ini_col; e < tam_fim_col ; e++ ) {
              gotoxy ( e , i );
              printf ( " " );
         }
     }
}
struct Diretor {
     char Dire_tor [ 85 ];
} Diretor_De_Escola [ 48 ] = {
          {"Um Diretor de
Escola da rede Estadual de ensino" },
          {"listou seus
10 melhores alunos"                  },
          {"Pressione
qualquer tecla para conhece - los"   } };
struct Escola {
     char nome [ 16 ];
};
struct Escola Alu_no [ 16 ] =
        {{ "Ana Celia      "  },  { "Eder Costa     " },
         { "Humberto Gomes "  },  { "Dijalma
Lacerda" },
         { "Caroline Silva "  },  { "Igor
Goncalves " },
         { "Bruna Carla    " 
},  { "Fabio
Quadros  " },
         { "Geany Barros   " 
},  { "Jaqueline
Vega "}};
struct End_Da_Escola {
     int Numero;
     int Total_de_Alunos;
};
struct Professor {
     float Idade_Do_Professor;
     float Idade_Do_Diretor;
};
struct Classe {
     float Idade;
     float Notas;
     int Chamada;
     struct End_Da_Escola Atual;
     char Nome_da_rua [ 30 ];
     struct Professor Profe_ssor;
     char Nome_Do_Professor [ 30 ];
     char Nome_Do_Diretor [ 30 ];
};
struct Classe End_Da_Escola;
struct Classe Professor;
int main ( ) {
     system ( "title PROGRAMA STRUCT ANINHADA" );
     int i;
     struct Classe Notas_Idades [ 10 ] = { { 20.4, 9.5, 1 }, { 18.6, 8.9, 5 }, {
              16.5, 6.4, 8 }, { 19.4, 7.5, 4 }, { 17.5, 8.0, 3 },
              { 17.0, 7.7, 9 }, { 19.7, 6.9, 2 }, { 18.6, 9.0, 6 },
              { 16.0, 9.9, 7 }, { 20.0, 8.5, 10 } };
     strcpy ( Professor.Nome_Do_Professor , "Inacio
Santana" );
     strcpy ( Professor.Nome_Do_Diretor , "Juvencio
Guimaraes" );
     Professor.Profe_ssor.Idade_Do_Professor = 40.5;
     Professor.Profe_ssor.Idade_Do_Diretor = 55.6;
     strcpy ( End_Da_Escola.Nome_da_rua , "Presidente
General Figueiredo" );
     End_Da_Escola.Atual.Numero = 335;
     End_Da_Escola.Atual.Total_de_Alunos = 1200;
     got_color ( 2 , 25 , 3 , 79 , 2 , 15 ); //Moldura
     textcolor ( VERMELHOCLARO );
     gotoxy ( 30 , 3 );
     printf ( "PROGRAMA STRUCT ANINHADA" );
     textcolor ( PRETO );
     gotoxy ( 24 , 5 );
     printf ( "Programa
desenvolvido por:" );
     textcolor ( CINZAESCURO );
     gotoxy ( 51 , 5 );
     printf ( "Samuel
Lima" );
     textcolor ( VERDECLARO );
     gotoxy ( 34 , 7 );
     printf ( "sa_sp10@hotmail.com" );
     for ( i = 0; i < 2 ; i++ ) {
         gotoxy ( 17 , i + 7 );
         textcolor ( AZULCLARO );
         if ( i == 48 ) {
              gotoxy ( 17 , 9 );
         }
         printf ( " %s " , Diretor_De_Escola [ i ].Dire_tor );
         textcolor ( VERMELHOCLARO );
         gotoxy ( 20 , 17 );
         printf ( " %s " , Diretor_De_Escola [ 2 ].Dire_tor );
     }
     getche ( );
     system ( "cls" );
     got_color ( 2 , 25 , 3 , 79 , 2 , 11 );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 30 , 3 );
     printf ( "PROGRAMA
STRUCT ANINHADA" );
     textcolor ( PRETO );
     gotoxy ( 11 , 5 );
     printf ( "Nomes                Idades          Notas         Numeros" );
     textcolor ( AZULCLARO );
     for ( i = 0; i < 10 ; i++ ) {
         gotoxy ( 4 , i + 7 );
         printf ( "     %s         %.1f            %.1f            %d" ,
                   Alu_no [ i ].nome , Notas_Idades [ i ].Idade ,
                   Notas_Idades [ i ].Notas , Notas_Idades [ i ].Chamada );
     }
     Sleep ( 1800 );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 30 , 23 );
     printf ( "PRESSIONE
QUALQUER TECLA" );
     getche ( );
     system ( "cls" );
     got_color ( 2 , 25 , 3 , 79 , 2 , 15 );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 30 , 3 );
     printf ( "PROGRAMA
STRUCT ANINHADA" );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 5 );
     printf ( "Nome do
Professor    ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 5 );
     printf ( "%s" , Professor.Nome_Do_Professor );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 7 );
     printf ( "Nome do
Diretor      ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 7 );
     printf ( "%s " , Professor.Nome_Do_Diretor );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 9 );
     printf ( "A idade do
Professor ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 9 );
     printf ( "%.1f " , Professor.Profe_ssor.Idade_Do_Professor );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 11 );
     printf ( "A idade do
Diretor   ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 11 );
     printf ( "%.1f " , Professor.Profe_ssor.Idade_Do_Diretor );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 13 );
     printf ( "Endereco da
Escola   ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 13 );
     printf ( "Rua %s " , End_Da_Escola.Nome_da_rua );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 15 );
     printf ( "NÚmero               ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 15 );
     printf ( "%d " , End_Da_Escola.Atual.Numero );
     textcolor ( AZULCLARO );
     gotoxy ( 10 , 17 );
     printf ( "Total de
Alunos       ==> " );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 40 , 17 );
     printf ( "%d " , End_Da_Escola.Atual.Total_de_Alunos );
     Sleep ( 1800 );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 26 , 19 );
     printf ( "Por: " );
     textcolor ( AZULCLARO );
     printf ( "Samuel
Lima" );
     textcolor ( PRETO );
     gotoxy ( 26 , 20 );
     printf ( "sa_sp10@hotmail.com" );
     Sleep ( 1800 );
     textcolor ( VERMELHOCLARO );
     gotoxy ( 37 , 23 );
     printf ( "MUITO
OBRIGADO" );
     getche ( );
     exit ( 0 );
}