3.有若干图书,按字母顺序从小到大输出书名。voidsort(char*name[],intn){char*temp;inti,j,min;/*使用选择法排序*/for(i=0;i<n-1;i++)/*外循环:控制选择次数*/{min=i;/*预置本次最小串的位置*/for(j=i+1;j<n;j++)/*内循环:选出本次最小串*/if(strcmp(name[min],name[j])>0)/*请分析说明,写出该句的作用?*/min=j;/*存在更小的串保存之*/if(min!=i)/*存在更小的串,交换位置*/{temp=name[i];name[i]=name[min];name[min]=temp;}}}#include"stdio.hvoidmain(){char*name[5]={"BASIC","FORTRAN","PASCAL","C","FoxBASE"};inti;sort(name,5);for(i=0;i<5;i++)printf("%s\n",name[i]);/*输出排序结果*/}//请“冒泡法”重新试做本题,并调试运行。
冒泡排序代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <string.h>
void sort(char*name[],int n)
{
int i,j;
char* tmp;
for (i = 0; i < n-1;i++)
{
for (j = 0; j < n-1-i;j++)
{
if (strcmp(name[j] , name[j+1]) > 0)
{
tmp = name[j];
name[j] = name[j+1];
name[j+1] = tmp;
}
}
}
}
void main()
{
char*name[5]={"BASIC","FORTRAN","PASCAL","C","FoxBASE"};
int i;
sort(name,5);
for(i=0;i<5;i++)
printf("%s\n",name[i]);/*输出排序结果*/
}