为什么执行不了??请大神求解

#include<stdio.h>
int main()
{
    char str[100];
    int n,m;
    scanf("%d",&n);
    gets(str);
    scanf("%d",&m);
    while(m-1<n)
    {
        printf("%c",str[m-1]);
        m++;
    }
    return 0;
}

添加 getchar(); 读掉回车符

#include<stdio.h>
int main()
{
    char str[100]={};
    int n,m;
    scanf("%d",&n);
    getchar();
    gets(str);
    scanf("%d",&m);
    while(m-1<n)
    {
        printf("%c",str[m-1]);
        m++;
    }
    return 0;
}