scanf("%d", a + i ) works too.
%d and %s just tell scanf what to expect but in both cases it expects an address
in C, arrays and pointers are related.
%s just says to scanf to expect a string which is \0 terminated, whether it will fit into the character array or not scanf doesn't care.