if(getchar()---这里会消化掉一个字符
a[i] = getchar()--这里又获取下一个字符
改为:
char ch = getchar(); if(ch != '\n') a[i] = ch;
你每次循环执行了两次getchar(),每次获取了两个字符
应该是
char c = getchar();
if (c!='\n')
{
a[i]=c;
}
让每次循环只执行一次getchar()