急!!在线等,C语言编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 23:08:06
通过子函数的递归调用实现:把一个整型数据的第奇数个位置上的数据输出。例如:48392647的输出结果为4324。

如果能有注释说明的话额外加分
有些地方看不懂
length = (int)(log(x)/log(10)) + 1; /* 求整形数位数*/
if(length%2 == 0)
fun(x/10);
else
fun(x);
还有子函数我压根没看懂

#include "stdio.h"
#include <math.h>

void fun(long x); /* 递归函数*/
main()
{
long x;
int length;
scanf("%ld",&x);
length = (int)(log(x)/log(10)) + 1; /* 求整形数位数*/
if(length%2 == 0)
fun(x/10);
else
fun(x);
}
void fun(long x)
{
if(x==0)
return;
else
{
fun(x/100);
printf("%d",x%10);
}
}
应该没有问题

int i,j,n,m ,k=1,s[1000];s[0]=0;
scanf("%d",&n);
for(i=10,j=1;k<=1000;i*=10,j++)
{s[j]=(int)(n%i*10/i);if(s[j]==0&&n%i!=0) break;k++;
}
if((j-1)%2!=0)
{for(m=j-1;m>0;m--)
{if(m%2!=0) printf("%d",s[m]);}
}
else for(m=j-1;m>0;m--)
{if(m%2==0) printf("%d",s[m]);}
}

输出全部是偶数啊
main()
{int i,j,n,s1;
scanf("%d",&n);
a=n%10;