a[i]=' '||a[i]='\n'
Вместо = нужно == поставить, но проблема не в этом, проблема похоже в *(a+i).

Нашёл ещё пару косяков, например, если ввести строчку длиной ровно в maxlenth, будет ошибка, есть и другие, но мне легче было переписать.

Код
void getchars(char a[])
{
  char c;
  for(int i=0; i<maxline-1 && (c=getchar())!='\n';i++)
  {
    if(((c>='0')&&(c<='9')) || (a[i]==' ')) a[i]=c;
    else break;
  }
  a[i]='\0';
}

Так, он будет прерывать ввод, когда встретит любой символ, отличный от цифры или пробела, ещё в моём варианте не будет выхода за границы массива.