输出结构体中字符数组成员的值如何多了个字符?

输出结构体中字符数组成员的值怎么多了个字符?????
代码如下:
#include   <stdio.h>  

          main()  

          {  

                    struct{                                    

                              char   name[8];  

                              int   age;  

                              char   sex[8];  

                              char   depart[20];  

                              float   wage1,   wage2,   wage3,   wage4,   wage5;  

                    }a;  




                    FILE   *fp;  

                    float   wage;  

                    char   c= 'Y ';  

                    fp=fopen( "wage.dat ",   "w ");        

                    while(c== 'Y '||c== 'y ')                  

                    {  

                              printf( "\nName: ");  

                              scanf( "%s ",   a.name);          
 
          printf( "%s\n ",a.name)/*a   */
     
                              printf( "Age: ");  

                            scanf( "%d ",   &a.age);
 
              printf( "%s\n ",a.name)/*b   */    
     
                            printf( "Sex: ");  

                            scanf( "%s ",   a.sex);  

                            printf( "Dept: ");  

                              scanf( "%s ",   a.depart);