以字符串数组为列,从大到小,选择排序。
#include<stdio.h>
void main()
{
char buf[]="qazxswdedvfghbv";
int i,j,listen;
for(i=0;buf[i+1]!='\0';i++) //设第一个数为已排列好,遍历所有字母
{
listen=i; //监哨值法(设第一个数为最大值)
for(j=i+1;buf[j]!='\0';j++)
if(buf[j]>buf[listen])
listen=j; //求出i之后最大值下标
if(i!=listen) //与i下标不同,则交换值
{
buf[i]+=buf[listen];
buf[listen]=buf[i]-buf[listen];
buf[i]-=buf[listen];
}
}
printf("%s\n",buf);
}