Už si na to prišiel. Osobne by som nepoužil printf, keď tam stále vypisuješ len jeden znak. Napísal by som to skôr takto:
#include <stdio.h>
int main() {
int strana;
char znak;
int i;
int j;
printf("Zadajte cislo: ");
scanf("%d", &strana);
while (getchar() != '\n')
;
printf("Zadajte znak: ");
scanf("%c", &znak);
while (getchar() != '\n')
;
for (i = 0; i < strana; ++i) {
putchar(znak);
}
putchar('\n');
for (i = 0; i < strana - 2; ++i) {
putchar(znak);
for (j = 0; j < strana - 2; ++j) {
putchar(' ');
}
putchar(znak);
putchar('\n');
}
for (i = 0; i < strana; ++i) {
putchar(znak);
}
putchar('\n');
return 0;
}