博客地址:http://www.cnblogs.com/c2016/
这里使用了双for循环的冒泡排序
void BS(Num W[],int siz)
{
int t;
char *m;
for(int i=1;i<siz;i++) //数量排序
{
for(int j=0;j<siz-i;j++)
if(W[j].num>W[j+1].num)
{
t=W[j].num;
m=W[j].s;
W[j].num=W[j+1].num;
W[j].s=W[j+1].s;
W[j+1].num=t;
W[j+1].s=m;
}
}
for(int bs=1;bs<siz;bs++)
for(int ss=0;ss<siz-bs;ss++)
{
if(W[ss].num==W[ss+1].num) // 数量相同,按字典排序
{
if(strcmp(W[ss].s,W[ss+1].s)<0)
{
t=W[ss].num;
m=W[ss].s;
W[ss].num=W[ss+1].num;
W[ss].s=W[ss+1].s;
W[ss+1].num=t;
W[ss+1].s=m;
}
}
}
}
A_Tale_of_Two_Cities.txt的结果:点击显示
Gone_with_the_wind.txt的结果:点击显示
原文:http://www.cnblogs.com/smz60/p/5309193.html