Написать сортировку по алфавиту массива структур - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброй ночи. Не получается написать сортировку по алфавиту массива структур, заданного вот так:
struct book 
{ 
    char name[15]; 
    char surname[15]; 
    char tel[15]; 
    int age; 
} mybook[10];
Отсортировать нужно по начальной большой букве массива name. Заранее большое спасибо.

Решение задачи: «Написать сортировку по алфавиту массива структур»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    
typedef struct {
    const char * text;
    int num;
} pair_t;
 
int cmp(const void * a, const void * b){
    return strcmp(((pair_t*)a)->text, ((pair_t*)b)->text);
}
 
void dump(pair_t * p, size_t size){
    while ( size-- ){
        printf("%d\t%s\n", p->num, p->text);
        ++p;
    }
}
 
int main(void){
    pair_t pairs[] = {
        { .text = "bla bla bla", .num = 1 },
        { .text = "very long string", .num = 2 },
        { .text = "abc", .num = 3 }
    };
    
    dump(pairs, sizeof(pairs) / sizeof(*pairs));
    qsort(pairs, sizeof(pairs) / sizeof(*pairs), sizeof(*pairs), cmp);
    printf("\n");
    dump(pairs, sizeof(pairs) / sizeof(*pairs));
    
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы