Instead of
scanf("%[^\n]%*c", &OE1);
^^^
you need to write
scanf("%[^\n]%*c", OE1);
This statement
ptr -> OE[NAME_LEN]=OE1[NAME_LEN];
does not make a sense.
You need to write
#include <string.h>
//...
strcpy( ptr -> OE, OE1 );
This functionality of this if statement
if(head==NULL)
ptr->next=NULL;
else
ptr->next=head;
can be performed just by one statement
ptr->next = head;
And this statement
printf("%d %s %d\n",ptr->AM, ptr->OE[NAME_LEN], ptr->XS);
must be substituted for this one
printf("%d %s %d\n",ptr->AM, ptr->OE, ptr->XS);
&
:scanf("%[^\n]%*c", OE1);
--OE1
is an array; it gets automatically converted to a pointer (to its first element) when used as argument inscanf()
function.