Массив структур: напечатать номер курса, на котором наибольший процент женщин - C (СИ)

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

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

Имеется следующая информация о каждом из n-студентов: фамилия, имя, отчество, пол, возраст, курс. Написать программу, которая вводит эту информацию и печатает номер курса, на котором наибольший процент женщин.

Решение задачи: «Массив структур: напечатать номер курса, на котором наибольший процент женщин»

textual
Листинг программы
struct student {
    char *surname;
    char *name;
    char *patronymic;
    char sex;
    int age;
    int level;
};
 
int main()
{
    int i;
    int max = 0, max_1 = 0;
    int *max_girl; 
    student arr[n];
    for (i = 0; i < n; i++)
        fill_node(arr[i]);
 
     for (i = 0; i < n; i++)
        show(arr[i]);
 
     for (i = 0; i < n; i++)
        if (max < arr[i]->level)
            max = arr[i]->level;
    
    max_girl = (int *)malloc(sizeof(int) * max);
 
    for (i = 0; i < max; i++)
        max_girl[i] = 0;
 
    for (i = 0; i < n; i++)
        if (arr[i]->sex == 'w')
            max_girl[arr[i]->level]++;
 
    for (i = 0; i < max; i++)
        if (max_1 < max_girl[i])
            max_1 = max_girl[i];
 
    printf("%d level has more girls\n", max_1);
 
    free(max_girl);
    return 0;
}
 
void show(student *node)
{
    printf("surname: %s", arr[i]->surname);
    printf("name: %s", arr[i]->name);
    printf("patronymic: %s", arr[i]->patronymic);
    printf("sex: %c", arr[i]->sex);
    printf("age: %d", arr[i]->age);
    printf("level: %d", arr[i]->level);
}
void fill_node(student *node)
{
    // здесь выделить память под поля и заполнить
}

Объяснение кода листинга программы

В этом коде используется язык программирования C для работы с массивом структур. Список действий, которые происходят в коде:

  1. Объявляется структура student с полями: surname, name, patronymic, sex, age, level.
  2. В функции main() инициализируются переменные: i, max, max_1, max_girl.
  3. Создается массив структур arr с помощью оператора new.
  4. В цикле for заполняются поля структур arr.
  5. В цикле for выводятся на экран поля структур arr.
  6. В цикле for проверяется, является ли уровень текущего элемента массива больше max. Если да, то значение max обновляется.
  7. С помощью malloc выделяется память под массив int, который будет хранить количество девушек на каждом уровне.
  8. В цикле for подсчитывается количество девушек на каждом уровне.
  9. В цикле for проверяется, является ли текущее значение max_girl больше max_1. Если да, то значение max_1 обновляется.
  10. Выводится на экран сообщение о том, на каком уровне больше девушек.
  11. Вызывается функция free() для освобождения памяти, выделенной под max_girl.
  12. Функция main() возвращает 0, что означает успешное завершение работы программы. Код написан без учета возможных ошибок (например, при работе с памятью), поэтому для его работы необходимо предусмотреть соответствующие проверки.

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


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

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

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