weixin_57770100 2021-06-05 08:27 采纳率: 54.5%
浏览 9
已采纳

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

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]);/*输出排序结果*/}//请“冒泡法”重新试做本题,并调试运行。

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-06-05 08:35
    关注

    冒泡排序代码如下,如有帮助,请采纳一下,谢谢。

    #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]);/*输出排序结果*/
    	
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮