Почему код выполняется с ошибкой?
потому что указатель "a" непонятно куда указывает, а ты в это непонятно куда ещё пытаешься ввод с клавиатуры организовать, и в итоге получаешь непонятно что.
функция scanf работает с указателями, так что в качестве параметра тебе нужно было передавать не "а", а адрес указывающий на "а", проще говоря напиши: scanf("%s", &a)