Работа со структурами: сортировка массива студентов - C (СИ)

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

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

10.1. Вводится массив структур Student. У каждого студента есть, как минимум, имя и массив из 5 оценок. Необходимо сгруппировать массив по 4 группам: отличники (все 5), хорошисты (хотя бы одна 4),троечники(хотя бы одна 3) и двоечники(хотя бы одна 2). В каждой группе - отсортировать студентов по алфавиту. 10.2. Удалить всех, у кого больше двух 2-к. Для каждого студента вывести его средний балл. У меня есть кое-какие наработки , но если честно кажется, что всё неправильно. помогите дописать , пожалуйста
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

struct Student
{
    char* FIO[255];
    int ocenka[5];
    char* group[255];
};
 
int main()
{
    int n,p;
    printf("Vvedite kolichestvo studentov");
    scanf ("%d",n);
    struct Student = (struct Student*)malloc(sizeof(struct Student) * n);
    struct Student tmp;
    Zapolnenie (FIO,ocenka,n);
    SortirovkaOcenok (ocenka,group, n)
}
    void Zapolnenie (char* FIO, int ocenka, int n)
{
    
    for(int i=0; i<=n; i++)
    {
        puts("Vvedite FIO\n");
        gets("%s", Student[i].FIO);
        
        for (int j=0; j<=5; j++)
        {
            printf("Vvedite ocenki (5)\n");
            scanf("%d", &Student[i].ocenka[j]);
        }
    }
}
    void SortirovkaOcenok (int ocenka, char* group, int n)
{
    int temp5=0, temp4=0, temp3=0, temp2=0;
    for (int i=0;i<=n;i++)
    {
        for (int j=0; j<=5; j++)
        {
            if (student[i].ocenka[j]=5)
                temp5++;
            else if (student[i].ocenka[j]=4)
                temp4++;
            else if (student[i].ocenka[j]=3)
                temp3++;
            else if (student[i].ocenka[j]=2)
                temp2++;
        }
     if (temp5=5)
         student[i].group="Otlichnik";
     else if (temp4=>1)
         student[i].group="Horoshist";
     else if (temp3=>1)
         student[i].group="Troechnik";
     else if (temp2=>1)
         student[i].group="Dvoechnik";
        
    }
}
 void SortirovkaNames (char* FIO, char* group, int n)
    for (int k=0;k<=4;k++)
        for(int i=0; i<=n ; i++)
            for(j=0; j<i ; j++)
                if(strcmp( box[ j ].name, box[ j+1 ].name ) > 0)
            {
                tmp = box[ j ];
                box[ j ]= box[ j+1 ];
                box[ j+1 ]= tmp;
            }

Решение задачи: «Работа со структурами: сортировка массива студентов»

textual
Листинг программы
struct Student
{
    char* FIO[255];
    int ocenka[5];
    double* avg;
};

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


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

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

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