Это немного из Doozy проблемы кодирования мне нужна помощь по - используется первый структуры:QSort сортировать массив структур, что указывает на другой структуры
typedef struct node {
char email[100];
} Node;
typedef struct edge {
Node *from_email, *to_email;
} Edge;
Node nodes[NODE_ARRAY_SIZE];
Edge edges[EDGE_ARRAY_SIZE];
Итак, как вы можете см. структуру «Узла» содержит массив символов с электронной почтой, а структура «Край» содержит указатели на 2 разных Узла. Есть также два массива, один из узлов и один из Edges.
Я хотел бы QSort() как массивы - Я уже сделал узлы один, используя:
qsort(nodes, node_size, sizeof(Node), node_cmp_function);
int node_cmp_function(const void *a, const void *b) {
Node *temp_a = (Node *)a;
Node *temp_b = (Node *)b;
return strcmp(temp_a->username, temp_b->username);
}
, но я не могу понять, как сортировать массив Edges -> Я хотел бы отсортировать его используя strcmp on * from_email - но если оба * from_emails сравниваются, то я хотел бы сортировать, используя * to_email.
Спасибо за помощь!
что вы пробовали? вы, похоже, хорошо понимаете, что вам нужно сделать - напишите функцию qsort, которая принимает ребра, сравните значение from_email, если это получится равным, сравните to_email. – NiRR