Если мы посмотрим на ваш пример:
1260 => заменить 2 на 1 и умножить 21 на 60.
Неправильная перестановка в вашей основной функции, поскольку вы изменили числа в индексах 1 (вторая позиция) и 2 (третья позиция).
Возвращаясь к вашему вопросу, вы можете получить искомый результат, делая то, что вы сделали, чтобы получить единицы, десятки и сотни ...
int main() {
int number, temp1, temp2;
int newnumber[4];
int n = 3;
printf("put the number");
scanf("%d", &number);
do {
newnumber[n] = number % 10;
number = number / 10;
n--;
} while (n >= 0);
temp1 = newnumber[0];
newnumber[0] = newnumber[1];
newnumber[1] = temp1;
temp1 = newnumber[0] * 10;
temp1 += newnumber[1];
temp2 = newnumber[2] * 10;
temp2 += newnumber[3];
printf("%d", temp1 * temp2);
}