I was just trying out a simple program in C, inserting into an array.
I used a scanf function to accept characters but it seems the compiler just skipped that and just went to end of the program.
This was the code that I used :-
#include <stdio.h>
void main()
{
    int a[50], i, j, m, n, x;
    char ch;
    printf("Enter the no. elements of the array :- ");
    scanf("%d", &m);
    printf("Enter the elements below :- ");
    for (i = 0; i < m; i++)
    {
        scanf("%d", &a[i]);
    }
    printf("The array is :- \n");
    for (i = 0; i < m; i++)
    {
        printf("%d", a[i]);
    }
    printf("\nDo you want to enter an element ? (Y/N)\n");
    scanf("%c", &ch);       // The compiler just skips this along with the      
    while (ch == 'y' || ch == 'Y') // while loop and goes straight to the printf 
    {                   // statement
        printf("The index of the element :- ");
        scanf("%d", &n);
        printf("\nEnter a number :- ");
        scanf("%d", &x);
        for (i = m; i > n; i--)
        {
            a[i] = a[i - 1];
        }
        a[n] = x;
        printf("\nInsert more numbers ? (Y/N)");
        scanf("%c", &ch);
        m = m + 1;
    }
    printf("\nThe array is :- ");
    for (i = 0; i < m; i++)
    {
        printf("%d", a[i]);
    }
}
I used the variable ch in order to allow the user to have a choice, whether or not to insert elements i.e. Y or N.
But the compiler basically skips the third scanf function, the one that accepts the char, along with the while loop. 
I just want to know why the scanf function was skipped ? 
 
     
    