
Помогите пожалуйста! Продолжить эту программу и сделать так, чтобы все занесенные сотрудники
отображались в алфавитном порядке: #include #include main() { const int N=4; int i; int srednya; struct rabochii { char fam[15]; char imya[15]; char otch[20]; char data[11]; int zarp; int dom[5]; int kv[5]; }; rabochii rb[N]; for (i=0; i { printf("\n %d-i rabochii", i); printf("\n familia:"); scanf( "%s", &rb[i].fam); printf("\n imya:"); scanf( "%s", &rb[i].imya); printf("\n otchestvo:"); scanf( "%s", &rb[i].otch); printf("\n Data rojdeniya:"); scanf( "%s", &rb[i].data); printf("\n Zarplata:"); scanf( "%d", &rb[i].zarp); printf("\n Projivaet v dome:"); scanf( "%d", &rb[i].dom); printf("\n V kvartire:"); scanf("%d", &rb[i].kv); }

Ответы на вопрос




Чтобы отсортировать сотрудников по фамилии в алфавитном порядке, можно использовать функцию `qsort` из стандартной библиотеки `stdlib.h`. Необходимо добавить функцию сравнения, которая будет сравнивать фамилии двух сотрудников.
Вот как можно модифицировать программу:
```c
#include
struct rabochii { char fam[15]; char imya[15]; char otch[20]; char data[11]; int zarp; int dom[5]; int kv[5]; };
int compare(const void* a, const void* b) { const struct rabochii* ra = (const struct rabochii*) a; const struct rabochii* rb = (const struct rabochii*) b; return strcmp(ra->fam, rb->fam); }
int main() { const int N = 4; int i; struct rabochii rb[N];
for (i = 0; i < N; i++) { printf("\n%d-й рабочий", i); printf("\nФамилия: "); scanf("%s", rb[i].fam); printf("Имя: "); scanf("%s", rb[i].imya); printf("Отчество: "); scanf("%s", rb[i].otch); printf("Дата рождения: "); scanf("%s", rb[i].data); printf("Зарплата: "); scanf("%d", &rb[i].zarp); printf("Проживает в доме: "); scanf("%d", &rb[i].dom[0]); printf("В квартире: "); scanf("%d", &rb[i].kv[0]); }
qsort(rb, N, sizeof(struct rabochii), compare);
printf("\nОтсортированный список сотрудников по фамилии:\n"); for (i = 0; i < N; i++) { printf("%s %s %s\n", rb[i].fam, rb[i].imya, rb[i].otch); }
return 0; } ```
В этой программе мы добавили функцию `compare`, которая сравнивает фамилии двух сотрудников с помощью функции `strcmp`. Затем мы используем функцию `qsort`, чтобы отсортировать массив `rb` структур `rabochii` по фамилии. Наконец, мы выводим отсортированный список сотрудников на экран.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili