输入ABCDE,输出CBDAE
#include<stdio.h>
int f(char a[])
{
if(*a=='\0')
return 0;
else
return 1+f(a+1);
}
main()
{
char a[100];
int 1,k;
gets(a);
i=f(a)/2;
k=0;
while(1)
{
if(a[i+k]=='\0')
break;
putchar(a[i+k]);
if(k>=0)
k=-k-1;
else
k=-k;
}
}
#include<stdio.h>
// 定义函数f,用于计算字符串a的长度
int f(char a[])
{
// 如果字符串a的首字符为空,则返回0
if(*a=='\0')
return 0;
// 否则,返回1+f(a+1),即字符串a的长度
else
return 1+f(a+1);
}
// 主函数
main()
{
// 定义字符串a,长度为100
char a[100];
// 定义变量i和k
int i,k;
// 使用gets函数获取用户输入的字符串a
gets(a);
// 计算字符串a的长度,并将其赋值给变量i
i=f(a)/2;
// 将变量k初始化为0
k=0;
// 使用while循环,当字符串a的第i+k个字符为空时,跳出循环
while(1)
{
if(a[i+k]=='\0')
break;
// 使用putchar函数输出字符串a的第i+k个字符
putchar(a[i+k]);
// 如果变量k大于等于0,则将变量k赋值为-k-1
if(k>=0)
k=-k-1;
// 否则,将变量k赋值为-k
else
k=-k;
}
}
函数f是统计字符串中有效字符的个数。
然后main中先得到输入的字符串a,然后以中间字符位置i为标准,
遍历它前面的字符与后面的字符,这样完成遍历a所有字符。