C递归奇偶索引数字变化
我必须输入一个数字n(不是数组),比如691234,它必须是其中的偶数,输出应该是这样的:962143->它用给定数字的偶数索引移动奇数索引。如果我有0612,输出将是612。我有一个代码,但它与我需要做的不是偶数,我试着除以100并返回一个数字,但似乎对我来说没有任何效果。C递归奇偶索引数字变化,c,recursion,C,Recursion,我必须输入一个数字n(不是数组),比如691234,它必须是其中的偶数,输出应该是这样的:962143->它用给定数字的偶数索引移动奇数索引。如果我有0612,输出将是612。我有一个代码,但它与我需要做的不是偶数,我试着除以100并返回一个数字,但似乎对我来说没有任何效果。\include #include <stdio.h> int f(int n){ if(n > 99){ int r = n % 100; int ret = f
\include
#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;
}
int f(int n){
如果(n>99){
int r=n%100;
int ret=f(n/100);
如果(ret>0)
返回ret*100+r%10*10+r/10;
其他的
返回ret;
}否则,如果(n>9){
返回n%10*10+n/10;
}否则{
返回-1;
}
}
整数变化(整数n){
int-ret=f(n);
返回ret>0?ret:n;
}
内部主(空){
int n;
printf(“输入编号:”);
scanf(“%d”和“&n”);
printf(“%d\n”,更改(n));
返回0;
}
请尝试再次解释。问:你所说的“转移”是什么意思?移动10秒的位置值?一个值,还是整个数字串?右,还是左?问:你所说的“索引”是什么意思?10位的位置?从0开始还是从1开始?从最高有效位还是最低有效位开始?问:你为什么要这么做?家庭作业?你能一字不差地把作业发出去吗?问:你试过什么?你能发一些代码吗?我能说的就是你需要将输入数的偶数索引与输入数的奇数索引进行移位,不,这不是家庭作业。我已经试了几个小时想弄明白。谢谢你,Bulepsix,它工作得很好,这对我来说是一个沉重的递归。我希望我能像你一样轻松地做到这一点。我看到了你的个人资料,似乎你回答了每个问题,你能和我们分享你的经验吗?你怎么这么好,先生?