Problem E: 字符串改造(串)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 360 Solved: 122
[ Submit][ Status][ Web Board]
Description
一个字符串,存放在一个数组中,编程序将其改造之后输出:
(1)将S的所有第偶数个字符按照从大到小的次序放在S的后半部分;
(2)将S的所有第奇数个字符按照从小到大的次序放在S的前半部分;
Input
输入一个字符串
Output
输出改造后的字符串
Sample Input
ABCDEFGHIJKL
Sample Output
ACEGIKLJHFDB
HINT
/**
一个字符串,存放在一个数组中,编程序将其改造之后输出:
(1)将S的所有第偶数个字符按照从大到小的次序放在S的后半部分;
(2)将S的所有第奇数个字符按照从小到大的次序放在S的前半部分;
*/
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char a[100],aji[50],aou[50];
int len,i,j,lenji,lenou;
gets(a);
len=strlen(a);
cout<<"a的长度为:"<<len<<endl;
j=0;
for(i=0;i<len;i+=2)//奇数字符
{
aji[j]=a[i];
j++;
}
aji[j]='\0';//加一个结束符;
cout<<"奇数字符"<<aji<<endl;
j=0;
for(i=1;i<len;i+=2)//偶数字符
{
aou[j]=a[i];
j++;
}
aou[j]='\0';//加一个结束符;
cout<<"偶数字符"<<aou<<endl;
/*奇数字符由小到大排列*/
lenji=strlen(aji);
char t;
for(j=0;j<lenji-1;j++)
{
for(i=0;i<lenji-1-j;i++)
{
if(aji[i]>aji[i+1])
{
t=aji[i];
aji[i]=aji[i+1];
aji[i+1]=t;
}
}
}
cout<<aji;
/*偶数字符从大到小*/
lenou=strlen(aou);
for(j=0;j<lenou-1;j++)
{
for(i=0;i<lenou-1-j;i++)
{
if(aou[i]<aou[i+1])
{
t=aou[i];
aou[i]=aou[i+1];
aou[i+1]=t;
}
}
}
cout<<aou;
return 0;
}