Ваша ошибка в том, что
char a="9jhjhi";
должно быть
char *a="9jhjhi";
. То, что происходит, является неопределенным поведением, поэтому может произойти все что угодно.символ, поэтому ваш a
будет содержать указатель (на начало этой строки), преобразованный в символ - каким бы он ни был.
%s
преобразование в printf предполагает, что вы передаете ему строку, которая должна быть символом *, указывающим на последовательность символов, заканчивающуюся символом 0.Вы передали ему символ, который определенно не соответствует этим требованиям, поэтому совершенно не определено, что произойдет - сбой может быть обычным явлением.
Вы также должны вернуть что-то из метода main () - он объявленвернуть int в конце концов.