What's wrong in my code? I successfully created a tree and everything is working fine except printInorder function and print statement in void main. When I try to print with %s its skipping the entire line.
Can you please help me in resolving this? I even tried fflush but it doesn't help me in my case and I don't try any scanf statement in my code.
struct Tree
{
    char data[10];
    struct Tree *left;
    struct Tree *right;
} * root;
struct Tree *createNode(char data[])
{
    struct Tree *node = malloc(sizeof(struct Tree));
    strcpy(node->data, data);
    node->left = node->right = NULL;
    insertTree(node, root, data);
}
void insertTree(struct Tree *currentNode, struct Tree *temp, char data[])
{
    char fletter=data[0];
    if (fletter=='a'||fletter=='e'||fletter=='o'||fletter=='i'||fletter=='u')
    {
        if (root == NULL)
        {
            root = currentNode;
            printf("inserted at root");
        }
        else if (temp->left == NULL)
        {
            temp->left = currentNode;
            printf("data inserted successfully at left");
        }
        else
        {
            insertTree(currentNode, temp->left,data);
        }
    }
    else
    {
         if (root == NULL)
        {
            root = currentNode;
            printf("inserted at root");
        }
        else if (temp->right == NULL)
        {
            temp->right = currentNode;
            printf("data inserted successfully at right");
        }
        else
        {
            insertTree(currentNode, temp->right,data);
        }
    }
}
void printInorder(struct Tree *tmp) 
{ 
     if (tmp == NULL) 
          return; 
     printInorder(tmp->left); 
     printf("%s ",tmp->data);   
     printInorder(tmp->right); 
} 
  
void main()
{
    struct Tree *root = createNode("saish");
    struct Tree *d1 = createNode("ansha");
    struct Tree *d2 = createNode("shish");
printf("%s",root->data);
    printInorder(root);
}
 
    