老规矩,先放代码。
#include "stdio.h"
#include "string.h"
int main()
{
int i,j;
char *temp;
char str[][9]={"Pascal","Basic","Fortran","Java","Visual C"};
for(i=0;i<=4;i++)
{
for(j=i+1;j<5;j++)
{
if(str[i][0] > str[j][0])
{
strcpy(&temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],&temp);
}
}
}
for(i=0;i<5;i++)
{
printf("%s\n",str[i]);
}
}
- 解析
核心思想:在第一个for循环中选定一个字符串,在第二个for循环中将剩下的字符串与其比较,如果大了就互换。例如,str[0]比较剩下的str[2]-[4]个后把最小的留在str[0]中,str[1]比较str[2]-str[4]后把第二小的留在str[1]中...这样来回筛选,就完成了对其的排序。
该排序方法很重要,一定要牢记!!