#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
char xx[20][80];
void jsSort() //扦插法排序
{
int i,j,s,k;
char temp;
for(i=0;i<20;i++) //对20行进行循环
{
s=strlen(xx[i]); //求每一行的字符长度
for(j=3;j<s;j=j+2) //对下标为奇数的字符扫描
{
k=j; //前插法排序
while((xx[i][k]<xx[i][k-2])&&(k>=3))
{
temp=xx[i][k];
xx[i][k]=xx[i][k-2];
xx[i][k-2]=temp;
k=k-2;
}
}
}
}
void main()
{
readDat();
jsSort();
writeDat();
}
readDat()
{
FILE *in;
int i=0;
char *p;
in=fopen("IN76.DAT","r");
while(i<20&&fgets(xx[i],80,in)!=NULL)
{
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}
fclose(in);
}
writeDat()
{
FILE *out;
int i;
out=fopen("OUT76.DAT","w");
//system("cls");
for(i=0;i<20;i++)
{ printf("%s\n",xx[i]); fprintf(out,"%s\n",xx[i]); }
fclose(out);
}
/***************************************** 选择排序void jsSort()
void jsSort()
{ //选择排序
int i,j,k,s;
char temp;
for(i=0;i<20;i++)
{
s=strlen(xx[i]); //求字符串长度
for(j=1;j<s;j+=2) //第一次从第一个奇数下标元素向后比较
for(k=j+2;k<s;k=k+2) //每次从后面选择最小的元素 放到前面
if(xx[i][j]>xx[i][k])
{ temp=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=temp; }
}
}
*/
博主个人网站 http://henghui.web-126.com/