sort函数能对结构体进行排序吗-小知识
话题:sort函数能对结构体进行排序吗?
问题详情: 我的结构体是:struct node{ 我想用sort函数对b进行升序排序
回答:同类型结构体变量可以直接赋值的。 #include struct node { int a,b,c; }array[10001],tmp; void main() { 这里可以调用sort函数了 它接受结构体数组和数 度 具体看你为结构体赋了多少值 } void sort(struct node *a,int n) { int i,j; for(i=0;ia[i+1].b) { tmp=a[i+1]; a[i+1]=a[i]; a[i]=tmp; } } } }
话题:对结构体 sort 排序说引用 内存。
问题详情:20个测试点就一个点这样,而且这个点只是第二大的。(数据均小
回答:楼上是sx,楼主别理他。 stl默认是小于号排序,严格小于。 自定义的cmp也该是当x、y相等时返回0才行,否则排序无法 写法如下: struct pii{int a,b;}; bool cmp(const pii &x,const pii &y){return x.by.b;} sort(1+p,1+n+p,cmp); 如果按以下写法,大多数编译器下会更快(内联) bool operator(const pii &x,const pii &y){return x.by.b;} sort(1+p,1+n+p);
话题:一个c语言问题:对结构体的排序问题
问题详情:对结构体进行数据 .. int n) { int i,j;
回答:typedef struct { char num[10]; char name[20]; int age; char [20]; char birthday[20]; char address[50]; int tel; char e_mail[50]; }Student; Student stu[0]; void Sort_by_num(Student stud[],int n) { int i,j; Student t; bool key; for(i=0;in-1;i++) { key=1; for(j=0;jn-1-i;j++) if(strcmp(stud[j].num,stud[j+1].num)0) { key=0; strcpy(t.num,stud[j+1].num); strcpy(t.name,stud[j+1].name); strcpy(t. ,stud[j+1]. ); strcpy(t.birthday,stud[j+1].birthday); str
话题:sort()对结构体排序
问题详情:如果不是那sort()又是依据什么对结构体数组进行排序的 如果是
回答:sort的比较 作只使用你重载的,也就是小于 作符的 其他 作符不使用也就不涉及到了啊
话题:acm中的结构体排序是如何从二级推导到 的
回答:用sort 函数排。 对结构体s中的x,y,z三个元素排序; bool cmp(s a,s b) {if(a.x!=b.x)return a.xb.x; else{ if(a.y!=b.y)return a.yb.y; else return a.zb.z; } } sort(a,a+n,cmp);
话题:用vector开的结构体数组,能否用sort 排序
回答:可以的,系统提供的算法有sort()直接用不过要记得符号重载,如果是list容器就需要内置的sort算法如 变量.sort()
话题:matlab 结构体排序
问题详情:结构体S,有若干属性,现要取 是要得到排序后对应的S的索引
回答:%首先 所有E属性值 Value=S.E %然后,对Value排序,看你是按升序还是降序,如果按升序 [Value2,pos]=sort(Value) %Value2为升序排完后的数据,pos为Value2中的数值在Value1中对应 %的索引,详情可以help sort。 %再然后,为了得到楼主所需要的S的索引值,及对应的结构体属性 ind=pos(1:3); %得到索引了,我想楼主应该可以你需要的结构体其他属性了 % 想得到结构体S中的F属性 SF=S.F(ind)
话题:为什么结构体排序总是调用出现不正确
问题详情:void sort(struct student s[N]) 函 sum) 结构体的某元素进行排
回答:void sort(struct student s[N]) 不能用已定义长度的数组做参数,把它改成void sort(struct student *s) 调用时用sort(s); 如果你其他地方没错的话,这样子应该就对了。 如果不用指针,那么就把 struct student stu[3]; 定义成全 变量,函数不要传入参数。
话题:C语言中有关结构体排序的问题!
问题详情:void sort(struct stu stu[N]); input( 麻烦帮我写一个排序的函数!
回答: 可以,借助内存考贝 不好意思,出了点逻辑错误.修改好了. #include stdio.h #includememory.h 加这个头 #define N 10 struct stu {char num[4]; char name[20]; int score[3]; float r; }stu[N]; void sort(struct stu *s); void main() { int sum,m,n; void pt(struct stu stu[5]); void input(struct stu stu[5]); void sort(struct stu stu[N]); input(stu); for(m=0;mN;m++) { sum=0; for(n=0;n3;n++) sum+=stu[m].score[n]; stu[m].r=(float)sum/3; } sort(stu); pt(stu); } void pt(struct stu stu[N]) { int i,j; printf("\ No. name score1 score2 score3\ "); for(i=0;iN;i++) { printf("%5s%1
参考回答:没有,动态分配的情况就可以
话题:请问结构体排序用什么语句啊,给个例子,谢谢
回答:与通常数组排序方法相同,只是一般根据结构中某变量的值进行排序, 的是结构体。例如按照学生平均成绩排序: #include "stdio.h" #include stdlib.h #define SIZE 10 struct student{ char id[20]; char name[20]; int score[3]; float erage; } stud[SIZE]; void input() { int i; for(i=0;iSIZE;i++) { printf("第%d个学生的 :\n",i+1); scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]); stud[i].erage=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0; } } void sortput() { int i,j; struct student temp; for(i=0;iSIZE;i++)
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-

















































