这个题不太会,自己的有问题,想看一下改用冒泡法的正确代码

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]);/*输出排序结果*/
	
}