想请问一下我这串代码问题出在哪里,最后编译运行结果出现了null

#include<stdio.h>

int main()

{
    int i,n;
    
    printf("请输入字符个数:\n");
    scanf("%d",&n);
    
    char a[n+1];
    
    printf("请开始输入字符:");
    
    for(i=0;i<n;i++)
    {
        scanf("%c",&a[i]);
     } 
     a[n]='\0';
     
     printf("您输入的字符串是:%s\n",a[n]);
     return 0;
}

21行修改,
改为:

#include<stdio.h>
 
int main()
 
{
    int i,n;
    
    printf("请输入字符个数:\n");
    scanf("%d",&n);
    
    char a[n+1];
    
    printf("请开始输入字符:");
    
    for(i=0;i<n;i++)
    {
        scanf("%c",&a[i]);
     } 
     a[n]='\0';
     
     printf("您输入的字符串是:%s\n",a);
     return 0;
}
 

1,加getchar()消除缓存
2,输出字符串

#include<stdio.h>
int main()
{
    int j,n;
    printf("请输入字符个数:\n");
    scanf("%d",&n);
    char a[n+1];
    printf("请开始输入字符:");
    getchar();
    for(j=0; j<n; j++)
    {
        scanf("%c",&a[j]);
    }
    a[n]='\0';
    printf("您输入的字符串是:%s\n",a);
    return 0;
}