繁体   English   中英

C中基于int值和char值的数组排序

[英]sorting of array based on int value and char value in C

例如,我有一个带有输出的数据:

Age:
Name:
Sex: 

和一个示例输入:

Age: 80
Name: Mary
Sex: F

Age: 100
Name: Bobby
Sex: M

Age: 45
Name: Sara
Sex: F

Age: 20
Name: Sam
Sex: M

我希望按年龄升序对它们进行排序:

Age: 20
Name: Sam
Sex: M

Age: 45
Name: Sara
Sex: F

Age: 80
Name: Mary
Sex: F

Age: 100
Name: Bobby
Sex: M

如何将作为字符数组的 Name 和 Sex 数组关联/标记/附加到作为 int 数组的 Age?

假设您有一个 Employee 结构,这个qsort将为您进行排序。

  int compare( const void* a, const void* b)
     {
      struct employee *e1 = (struct employee *)a;
      struct employee *e2 = (struct employee *)b;
       int int_a = * ( (int*) e1-> Age );
       int int_b = * ( (int*) e2-> Age );
       // an easy expression for comparing
       return (int_a > int_b) - (int_a < int_b);
     }
    
     qsort(values, size, sizeof(struct employee), compare ) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM