Ваш своп неверный, он должен выглядеть так:
char temp = t[i];
t[i] = t[i + 1];
t[i + 1] = temp;
Кроме того, если вам нужен такой бесконечный цикл, я рекомендую пропустить пробел в scanf
, например:
while (scanf(" %d", &n) == 1) // note the space before %d
В целом, вот как это может выглядеть:
int main(int argc, char** argv) {
char t[33] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"; // 33 elements to leave space for '\0'
int n;
while (scanf(" %d", &n) == 1)
{
for (int j = 0; j < n; j++)
for (int i = 0; i < 31; i++)
{
char temp = t[i];
t[i] = t[i + 1];
t[i + 1] = temp;
}
printf("string: %s\n", t);
}
return 0;
}