社区
C语言
帖子详情
用qsort对结构体排序,急~~(在线等)
zhengwei1984222
2003-12-16 10:38:07
假如有一个结构体数组
struct node{
int x;
int y;}node[4]={4,y1,6,y2,1,y3,5,y4};
现在要根据node.X的值对数组进行排序,调用qsort函数怎么实现?
小弟一直对qsort函数的第四个参数不很明白,谁能帮忙解释一下!3x!
...全文
692
7
打赏
收藏
用qsort对结构体排序,急~~(在线等)
假如有一个结构体数组 struct node{ int x; int y;}node[4]={4,y1,6,y2,1,y3,5,y4}; 现在要根据node.X的值对数组进行排序,调用qsort函数怎么实现? 小弟一直对qsort函数的第四个参数不很明白,谁能帮忙解释一下!3x!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhengwei1984222
2003-12-16
打赏
举报
回复
行了!
谢过各位!
arfi
2003-12-16
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
struct node
{
int x;
int y;
}node[4]={{4, 0}, {6, 0}, {1, 0}, {5, 0}};
int compare(const void *ele1, const void *ele2)
{
struct node *px, *py;
px = (struct node *)ele1;
py = (struct node *)ele2;
if(px->x < py->x)
return 1;
else
return 0;
}
void main(void)
{
int i;
qsort(node, 4, sizeof(struct node), compare);
for(i=0; i<4; i++)
printf("{%d, %d}, ", node[i].x, node[i].y);
}
第四个参数是一个函数指针,其中的参数是数组中两个元素的地址值(不用你管),你需要自己写一下比较函数,通过改变其返回值可进行从小到大或从大到小进行排序
lyr311
2003-12-16
打赏
举报
回复
去看看我曾经提过的这个问题吧:
http://expert.csdn.net/Expert/topic/2259/2259716.xml?temp=.3238489
layman2008
2003-12-16
打赏
举报
回复
#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 );
}
看看这个例子
zhengwei1984222
2003-12-16
打赏
举报
回复
谁能帮忙写一下啊!
zhengwei1984222
2003-12-16
打赏
举报
回复
大哥,能不能说得明白点!
hanyixin
2003-12-16
打赏
举报
回复
第四个参数是一个函数指针,这个函数提供了比较的方法。
sort 与
qsort
使用方法
结构体
多级
排序
适合于acm竞赛
经典的acm
排序
算法,轻松教你学会sort和
qsort
的使用方法。一个简单,一个比较繁杂,但是运行速度却相对来说较快。希望对大家有帮助,尤其是acm的同学。sort与
qsort
对
结构体
多级
排序
是非常有用的。
真正的
qsort
结构体
多级
排序
,不是某个骗子
qsort
多级
排序
某个CSDN里上传的
qsort
结构体
多级
排序
的太让我气愤了,辛辛苦苦赚的积分第一次下载就被这种东西给骗了,不能运行不能看,又不好,太可恶了。。。 这份代码OJ测试通过,能看能运行,有释义,不要再被那个说啥子ACM必学啊啥的给骗了。
C++自定义
结构体
排序
实现
C++中自定义
结构体
选择一个键值 调用sort
qsort
排序
结构体
排序
查找以及链表的使用
学习
结构体
排序
查找以及链表的使用#include
#include
#include
struct student { int num; double score; char name[100]; struct student *next; }; int cmp(const void *a,const void *b) { struct student *p1=(struct student*)a; struct student *p2=(struct student*)b; if(p1->score!=p2->score) return p1->score-p2->score?1:-1; else if(p1->num!=p2->num) return p1->num-p2->num; else return strcmp(p1->name,p2->name); } void main() { struct student s[100],*q,key,*p,*head; int n,i; while(scanf("%d",&n)!=EOF) { for(i=0;i
num,p->score,p->name); p=p->next; }
qsort
(s,n,sizeof(s[0]),cmp); head=&s[0]; for(i=1;i
num,p->score,p->name); p=p->next; } scanf("%d %lf %s",&key.num,&key.score,key.name); q=(struct student*)bsearch(&key,s,n,sizeof(s[0]),cmp); if(q) printf("%d %.2lf %s",q->num,q->score,q->name); else printf("No\n"); } }
c++
qsort
与sort 对
结构体
排序
实例代码
#include
using namespace std; typedef struct { string book; int num; }Book; //
qsort
的比较函数 int cmp(const void * a, const void * b) { return (*(Book*)a).num > (*(Book*)b).num ? 1 : 0; } //sort的比较函数 bool cmp_(Book a, Book b) { return a.num > b.num; } int main() { Book Bok[3] = { {1
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章