蓝桥杯练习 算法训练 奇变的字符串

算法训练 奇变的字符串

问题描述
  将一个字符串的奇数位(首位为第0位)取出,将其顺序弄反,再放回原字符串的原位置上。
  如字符串"abcdefg",奇数位为"bdf",顺序弄反后为"fdb",最后得到字符串"afcdebg"。
输入格式
  输入共一行,为一个字符串,字符串中无空格。
输出格式
  输出共一行,为一个字符串,即最后得到的字符串。
样例输入
abcdefg
样例输出
afcdebg
数据规模和约定
  字符串长度不超过255.
  
思路:首先可以把奇数位的字符存储在除原字符的另外一个字符数组中,然后逆序输出赋值给原数组,输出就行了 (记录刷题的第一天)。

代码如下:

#include
#include
int main(){
	char a[256],b[256];
	int i,j=0,k=1,l;
	gets(a);
	l=strlen(a);
	for(i=0;i<l;i++){
		if(i%2!=0){
			b[j++]=a[i];
		}
	}
	for(i=j-1;i>=0;i--){
		a[k]=b[i];
		k+=2;
	}
	a[l]='\0';
	puts(a);
	return 0;
}

程序运行结果如下:
在这里插入图片描述

你可能感兴趣的:(#)