三级网络技术上机字符串排序
第79套
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数SortCharD( ), 其函数的功能是: 以行为单位对字符按ASCII码从大到小的顺序进行排序, 排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。
例: 原文: dAe,BfC.
CCbbAA
结果: fedCBA.,
bbCCAA
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。 注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 -----------------
类型:字符串(单词)的倒置和删除。
答案:
void SortCharD(void)
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
for(j=0;j
for(k=j+1;k
if(xx[i][j]
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
第80套
函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数SORTCHARA(),其函数功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT1.DAT .
例:原文:dAe,BfC.
CCbbAA
结果:,.ABCdef
AACCbb
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。 注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 -----------------
类型:字符串(单词)的倒置和删除。
void SortCharA(void)
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
for(j=0;j
for(k=j+1;k
if(xx[i][j]>xx[i][k])
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
第81套
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数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
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 -------------------------
类型:字符串左右排序和比较。
void jsSort()
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
{ for(j=0;j
for(k=j+1;k
if(xx[i][j]
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
for(j=0;j
{ k=j+(strlen(xx[i])+1)/2;
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
第82套
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来的位置存放,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
例如:位置 0 1 2 3 4 5 6 7
源字符串 h g f e d c b a
则处理后字符串 h a f c d e b g
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 -------------------------
类型:字符串左右排序和比较。
void jsSort()
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
for(j=1;j
for(k=j+2;k
if(xx[i][j]>xx[i][k])
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
第83套
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数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
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ----------------------------
类型:字符串左右排序和比较。
注:要注意当要进行右半部分排序时,一定要判断原字符串个数是否为奇数,若是则要 half加1,本题对右半部分采用选择法对其进行升序排序。
void jsSort()
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
{ for(j=0;j
for(k=j+1;k
if(xx[i][j]
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
for(j=(strlen(xx[i])+1)/2;j
for(k=j+1;k
if(xx[i][j]>xx[i][k])
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
第84套
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数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
部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
----------------------------
类型:字符串左右排序和比较.
注:先采用冒泡法对左边部分进行升序排序,然后将排序后的左半与右半按对应位进行 调换。
void jsSort()
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
{ for(j=0;j
for(k=j+1;k
if(xx[i][j]>xx[i][k])
{ temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
for(j=0;j
{ k=j+(strlen(xx[i])+1)/2;
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}