Понятия не имею, почему вы получаете ошибку сегмента.Мне бы хотелось увидеть больше вашей программы.
Но использование "% d" для scanf будет принимать только целочисленные значения, и вы получите "0" для n, которое не является целым числом и, следовательно, isalpha (n) всегда будет ложным, и я никогда не установлю -1.
Возможно, вы не инициализируете i и, следовательно, оно никогда не устанавливается.Если вы ссылаетесь на него позже, это, вероятно, источник вашей ошибки сегмента.
Используйте scanf ("% c", & n), например так:
int main(char** argc, int argv) {
char n = 0;
int i = 0;
scanf("%c", &n);
if (isalpha(n)) {
i = -1;
}
printf("you typed %c, i=%d", n, i);
}