[英]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.