C递归奇数索引位变化

C recursion even odd index digits change

我必须输入一个数字 n(不是数组),比方说 691234 它必须是 'even' 位数,输出应该是这样的:962143 -> 它移动了奇数索引与给定 number.If 的偶数索引我有 0612 输出将是 612.I 有一个代码,但它甚至不接近我需要做的,我尝试除以 100 并返回一个数字但是好像对我没什么用。

#include <stdio.h>

int f(int n){
    if(n > 99){
        int r = n % 100;
        int ret = f(n / 100);
        if(ret > 0)
            return ret * 100 + r % 10 * 10 + r / 10;
        else
            return ret;
    } else if(n > 9){
        return n % 10 * 10 + n / 10;
    } else {
        return -1;
    }
}
int change(int n){
    int ret = f(n);
    return ret > 0 ? ret : n;
}
int main(void){
    int n;
    printf("input number : ");
    scanf("%d", &n);
    printf("%d\n", change(n));
    return 0;
}