3572 - 10.cpp
时间限制 : 1 秒
内存限制 : 128 MB
读取一个字符串存放到字符数组xx中(字符串长度均小于80)。请编制函数void jsSort(char xx[]),其函数的功能是:
<span style="font-size:12.0pt;line-height:150%;font-family:宋体;"><span>
<p class="MsoNormal" style="text-align:left;" align="left">
<span style="font-size:12.0pt;line-height:150%;font-family:宋体;">从字符串中间一分为二<span>, </span>左边部分按字符的<span>ASCII</span>值降序排序<span>,</span>右边部分不作处理<span>,</span>如果原字符串长度为奇数<span>,</span>则最中间的字符不参加处理<span>,</span>字符仍放在原位置上。<span></span></span>
</p>
<p class="MsoNormal" style="text-align:left;" align="left">
<span style="font-size:12.0pt;line-height:150%;font-family:宋体;"><span> </span></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">例如<span>: </span>位置<span><span> </span>0 1 2 3 4 5 6 7</span></span>
</p>
<p class="MsoNormal" style="text-align:left;" align="left">
<span style="font-size:12.0pt;line-height:150%;font-family:宋体;"><span> </span></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">源字符串<span><span> </span>a b c d h g f e</span></span>
</p>
<p class="MsoNormal" style="text-align:left;" align="left">
<span style="font-size:12.0pt;line-height:150%;font-family:宋体;"><span> </span></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">排序后<span><span> </span>d c b a h g f e</span></span>
</p>
<p class="MsoNormal" style="text-align:left;" align="left">
<span style="font-size:12.0pt;line-height:150%;font-family:宋体;"><span> </span></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">定义 字符数组<span><span> </span>char xx[80];</span></span>
</p>
字符串输入使用scanf()函数
题目输入
每行输入1个字符串,字符串中不要输入空格
题目输出
变换后的字符串
输入/输出样例
输入格式
abcdhgfe abcdehgft
输出格式
dcbahgfe dcbaehgft
C语言解答
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <time.h> #define N 10 void jsSort(char xx[]) { char ch ; int half,j, k; half=strlen(xx)/2; for(j = 0 ; j < (int) half-1 ; j++) for(k=j+1;k<half;k++) if(xx[j]<xx[k]) {ch=xx[j]; /*交换相邻元素*/ xx[j]=xx[k]; xx[k]=ch; }//排序 for(j=half-1,k=strlen(xx)-1;j>=0;j--,k--) {ch=xx[j]; xx[j]=xx[k]; xx[k]=ch; } } int main() { // freopen("in","r",stdin); // freopen("out","w",stdout); char x[80]; int n,i; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++) { scanf("%s",x); jsSort(x); printf("%s\n",x); } } return 0; }