文档库 最新最全的文档下载
当前位置:文档库 › 字符排序

字符排序

字符排序:
1、请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。例如:位置 0 1 2 3 4 5 6 7 8
源字符串 d c b a h g f e
4 3 2 1 9 8 7 6 5 则处理后字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4部分源程序存在文件prog1.c中请勿改动
void jsSort()
{int i,j,k,m,temp;i=0;
while(i<20)
{j=strlen(xx[i]);
for(k=0;k<=j/2-2;k++)
for(m=0;m<=j/2-k-2;m++)
if(xx[i][m]>xx[i][m+1])
{temp=xx[i][m];
xx[i][m]=xx[i][m+1];
xx[i][m+1]=temp;}
if(j%2!=0)
for(k=0;k<=j/2-1;k++)
{temp=xx[i][k];
xx[i][k]=xx[i][k+(j+1)/2];
xx[i][k+(j+1)/2]=temp;}
else
for(k=0;k<=j/2-1;k++)
{temp=xx[i][k];
xx[i][k]=xx[i][k+j/2];
xx[i][k+j/2]=temp;}
i++;}}
2、请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。例如:位置 0 1 2 3 4 5 6 7 8
源字符串 a b c d h g f e
1 2 3 4 9 8 7 6 5 则处理后字符串 h g f e d c b a
8 7 6 5 9 4 3 2 1
void jsSort()
{int i,j,k,m,temp;i=0;
while(i<20)
{j=strlen(xx[i]);
for(k=0;k<=j/2-2;k++)
for(m=0;m<=j/2-k-2.;m++)
if(xx[i][m]{temp=xx[i][m];
xx[i][m]=xx[i][m+1];
xx[i][m+1]=temp;}
if(j%2!=0)
for(k=0;k<=j/2-1;k++)
{temp=xx[i][k];
xx[i][k]=xx[i][k+(j+1)/2];
xx[i][k+(j+1)/2]=temp;}
else
for(k=0;k<=j/2-1;k++)
{temp=xx[i][k];
xx[i][k]=xx[i][k+j/2];
xx[i][k+j/2]=temp;}
i++;}}
3、请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。例如:位置 0 1 2 3 4 5 6 7 8
源字符串 a b c d h g f e
1 2 3 4 9 8 7 6 5 则处理后字符串 d c b a e f g h
4 3 2 1 9 5 6 7 8
void jsSort()
{int i,j,k,m,p,temp;
i=0;
while(i<20)
{j=strlen(xx[i]);
for(k=1;kfor(m=0;m<=j/2-k-1

;m++)
if(xx[i][m]{temp=xx[i][m];
xx[i][m]=xx[i][m+1];
xx[i][m+1]=temp;}
if(j%2!=0)
for(k=j/2+1;k{p=k;
for(m=k+1;mif(xx[i][m]if(p!=k)
{temp=xx[i][p];
xx[i][p]=xx[i][k];
xx[i][k]=temp;}}
else for(k=j/2;k{p=k;
for(m=k+1;mif(xx[i][m]if(p!=k)
{temp=xx[i][p];
xx[i][p]=xx[i][k];
xx[i][k]=temp;}}
i++;}}
4、请编制函数StrOL(),其函数的功能是
:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。例如:原文:You He Me
I am a student. 结果:Me He You
student a am I原始数据文件存放的格式是每行的宽度均小于80个字符含标点符号和空格部分源程序存在文件prog1.c中。
void StrOL(void)
{int n;
char line[80];
int i;
for(i=0; i < maxline; i++)
{line[0] = 0;
n = strlen(xx[i]);
while(--n)
{if(!isalpha(xx[i][n]))
{strcat(line,xx[i] + n + 1);
strcat(line," ");
xx[i][n] = 0;}}
strcat(line,xx[i]);
strcpy(xx[i],line);}}
5、请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DAT中。
例:原文:dAe,BfC.
CcbbAA 结果:fedCBA.
BbCCAA 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。部分源程序存在文件prog1.c中。
void SortCharD(void)
{int i,j,p,k,temp;i=0;
while(i{for(j=0;j{p=j;
for(k=j+1;kif(xx[i][k]>xx[i][p])
p=k;
if(p!=j)
{temp=xx[i][p];
xx[i][p]=xx[i][j];
xx[i][j]=temp;}}
i++;}}
6、请编制函数SortCharA(),其函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。
例:原文:dAe,BfC.
CCbbAA
结果:,.ABCdef
AACCbb 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
void SortCharA(void)
{ int i,j,k,m,p,temp;
for(i=0;i{ m=strlen(xx[i]);
for(j=0;jfor(k=j+1;kif(xx[i][j]>xx[i][k])
{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}
7、请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
例如:位置 0 1 2 3 4 5 6 7 
源字符串 a b c d e f g h
则处理后字符串 a h c f e d g b 
void jsSort()
{ int i,j,k,m,n,p,temp;
for(i=

0;i<20;i++)
{ m=strlen(xx[i]);
for(j=1;j{ p=j;
for(k=j+2;kif(xx[i][k]>xx[i][p])
p=k;
if(p!=j)
{temp=xx[i][p];
xx[i][p]=xx[i][j];
xx[i][j]=temp;}}}}
8、请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,右边部分按字符的ASCII值降序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8
源字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4
则处理后字符串 e f g h d c b a
5 6 7 8 9 4 3 2 1
void jsSort()
{int i,j,k,m,p,temp;i=0;
while(i<20)
{ m=strlen(xx[i]);
for(j=0;j{ p=j;
for(k=j+1;kif(xx[i][k]p=k;
if(p!=j)
{temp=xx[i][p];
xx[i][p]=xx[i][j];
xx[i][j]=temp;}}
if(m%2==0)
for(j=m/2;j{ p=j;
for(k=j+1;kif(xx[i][k]>xx[i][p])
p=k;
if(p!=j)
{temp=xx[i][p];
xx[i][p]=xx[i][j];
xx[i][j]=temp;}}
else
for(j=m/2+1;j{ p=j;
for(k=j+1;kif(xx[i][k]>xx[i][p])
p=k;
if(p!=j)
{temp=xx[i][j];
xx[i][j]=xx[i][p];
xx[i][p]=temp;}}
i++;}}
9、请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。例如:位置 0 1 2 3 4 5 6 7 8
源字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4
则处理后字符串 d c b a h g f e
4 3 2 1 9 8 7 6 5 部分源程序存在文件prog1.c中。
void jsSort()
{int i,j,k,l,p,temp;i=0;
while(i<20)
{j=strlen(xx[i]);
if(j%2==0)
{for(k=j/2;k<=j-2;k++)
{p=k;
for(l=k+1;l<=j-1;l++)
if(xx[i][l]>xx[i][p])
p=l;
if(p!=k)
{temp=xx[i][p];
xx[i][p]=xx[i][k];
xx[i][k]=temp;}}
for(k=0;k<=j/2-1;k++)
{temp=xx[i][k];
xx[i][k]=xx[i][k+j/2];
xx[i][k+j/2]=temp;}}
else
{for(k=j/2+1;k<=j-2;k++)
{p=k;
for(l=k+1;l<=j-1;l++)
if(xx[i][l]>xx[i][p])
p=l;
if(p!=k)
{temp=xx[i][p];
xx[i][p]=xx[i][k];
xx[i][k]=temp;}}
for(k=0;k<=j/2-1;k++)
{temp=xx[i][k];
xx[i][k]=xx[i][k+j/2+1];
xx[i][k+j/2+1]=temp;}}
i++;}}
10、请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,右边部分按字符的ASCII值升序排序,

排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 6 7 8
源字符串 d c b a h g f e
8 7 6 5 9 1 2 3 4
则处理后字符串 e f g h d c b a
5 6 7 8 9 4 3 2 1 
void jsSort()
{int i,j,k,m,p,temp;i=0;
while(i<20)
{m=strlen(xx[i]);
if(m%2==0)
{for(j=m/2;j{p=j;
for(k=j+1;kif(xx[i][k]p=k;
if(p!=j)
{temp=xx[i][p];
xx[i][p]=xx[i][j];
xx[i][j]=temp;}}
for(j=0;j{temp=xx[i][j];
xx[i][j]=xx[i][j+m/2];
xx[i][j+m/2]=temp;}}
else
{for(j=m/2+1;j{p=j;
for(k=j+1;kif(xx[i][k]p=k;
if(p!=j)
{temp=xx[i][p];
xx[i][p]=xx[i][j];
xx[i][j]=temp;}}
for(j=0;j{temp=xx[i][j];
xx[i][j]=xx[i][j+m/2+1];
xx[i][j+m/2+1]=temp;}}
i++;}}
11、编制函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT1.DAT中。
例:原文:dAe,BfC.
CCbbAA结果:,.ABCdef
AACCbb
原始数据文件的存放格式是:每行的宽度均小于80个字符,含标点符号和空格。
void SortCharA(void)
{int i,j,k,n;
char c;
for(i = 0; i < maxline; i++){
n = strlen(xx[i]);
for(j = 0; j < n - 1; j++){
for(k = j+1; k < n; k++){
if(xx[i][j] > xx[i][k]){
c = xx[i][j];
xx[i][j] = xx[i][k];
xx[i][k] = c;}}}}}
12、编制函数SortCharA(),其功能是:以行为单位对字符按从大到小的顺序进行排序, 排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。例:原文:dAe,BfC.
CCbbAA结果:fedCBA.,
BbCCAA 原始数据文件的存放格式是:每行的宽度均小于80个字符,含标点符号和空格。
void SortCharA(void)
{int i,j,k,n;
char c;
for(i = 0; i < maxline; i++){
n = strlen(xx[i]);
n - 1; j++){
for(k = j+1; k < n; k++){
if(xx[i][j] < xx[i][k]){
c = xx[i][j];
xx[i][j] = xx[i][k];
xx[i][k] = c;}}}}}

相关文档