c语言 qsort

u010317264 2013-05-17 05:11:54
输入若干个字符串;
利用qsort排序;
要求用指针数组实现
...全文
135 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2013-05-17
  • 打赏
  • 举报
回复
引用 1 楼 happyjie1988 的回复:
头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参数: 1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序(使用qsort()排序并用 bsearch()搜索是一个比较常用的组合,使用方便快捷。)
generic pointer 和 函数指针也是指针 白马非马 ?
mangohonor 2013-05-17
  • 打赏
  • 举报
回复
qsort函数C语言函数库里就有,可以直接用,写对头文件和可变参数就行。
hugett 2013-05-17
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp(const void *p1, const void *p2){
	char *sp1 = *(char**)p1, *sp2 = *(char**)p2;
	return strcmp(sp1, sp2);
}

int main(){
	char* s[] = {"aaa", "ccc", "bbb", "eee", "ddd"};
	qsort(s, 5, sizeof(char*), cmp);
	for(int i = 0; i < 5; ++i) puts(s[i]);
	return 0;
}
闭着眼刷牙 2013-05-17
  • 打赏
  • 举报
回复
功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参数: 1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序 qsort(a,1000,sizeof(int)*2,comp);
赵4老师 2013-05-17
  • 打赏
  • 举报
回复
/* QSORT.C: This program reads the command-line
 * parameters and uses qsort to sort them. It
 * then displays the sorted arguments.
 */

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int compare( const void *arg1, const void *arg2 );

void main( int argc, char **argv )
{
   int i;
   /* Eliminate argv[0] from sort: */
   argv++;
   argc--;

   /* Sort remaining args using Quicksort algorithm: */
   qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare );

   /* Output sorted list: */
   for( i = 0; i < argc; ++i )
      printf( "%s ", argv[i] );
   printf( "\n" );
}

int compare( const void *arg1, const void *arg2 )
{
   /* Compare all of both strings: */
   return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
}


Output

[C:\code]qsort every good boy deserves favor
boy deserves every favor good


  • 打赏
  • 举报
回复
头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参数: 1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序(使用qsort()排序并用 bsearch()搜索是一个比较常用的组合,使用方便快捷。)

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧