Исправить ошибки в структуре "Студент" - C (СИ)

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

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

#include <stdio.h>
struct Student
{
    char    Name[255];    
    int     Group;        
    float   Ses;          
};
int main(int argc, char* argv[],int  const    MAX_STUDENTS = 5)
{

    Student  Stud1[MAX_STUDENTS];
    Student  stTemp;
    bool     is = false;
    
    for (int i = 0; i < MAX_STUDENTS; i++)
    {
        printf("Введите запись #%d:\n\tИмя: ", i);
        gets(Stud1[i].Name);
        printf("\tГруппа: ");
        scanf("%d", &Stud1[i].Group);
        printf("\tБалл: ");
        scanf("%f", &Stud1[i].Ses);
    }
    
    for (i = 0; i < MAX_STUDENTS; i++)
    {
        for (int j = i + 1; j < MAX_STUDENTS; j++)
        {
            if (Stud1[i].Group > Stud1[j].Group)
            {
                stTemp = Stud1[i];
                Stud1[i] = Stud1[j];
                Stud1[j] = stTemp;
            }
        }
    }
    
    for (i = 0; i < MAX_STUDENTS; i++)
    {
        if (Stud1[i].Ses > 4)
        {
            printf("\n%s из группы #%d", Stud1[i].Name, Stud1[i].Group);
            
            is = true;
        }
    }
  
    if (!is) printf("\nСтуденты с баллом успеваемости > 4 отсутствуют.");
    return 0;
}
скажите пож-та как исправить эти ошибки(см.скриншот)?

Решение задачи: «Исправить ошибки в структуре "Студент"»

textual
Листинг программы
#include <stdio.h>
 
typedef struct Student {
    char    Name[255];    
    int     Group;        
    float   Ses;          
} Student;
 
int main(int argc, char* argv[]) {
  const int MAX_STUDENTS = 3;
 
  Student  Stud1[MAX_STUDENTS];
  Student  stTemp;
  int i, j;
 
  for (i = 0; i < MAX_STUDENTS; i++) {
    printf("Введите запись #%d:\nИмя: ", i);
    scanf("%s", Stud1[i].Name);
    printf("Группа: ");
    scanf("%d", &Stud1[i].Group);
    printf("Балл: ");
    scanf("%f", &Stud1[i].Ses);
  }
  printf("\n");
 
  for (i = 0; i < MAX_STUDENTS; i++)
    for (j = i + 1; j < MAX_STUDENTS; j++)
      if (Stud1[i].Group > Stud1[j].Group) {
        stTemp = Stud1[i];
        Stud1[i] = Stud1[j];
        Stud1[j] = stTemp;
      }
 
  int is = 0;
 
  for (i = 0; i < MAX_STUDENTS; i++)
    if (Stud1[i].Ses > 4) {
      printf("%s из группы #%d\n", Stud1[i].Name, Stud1[i].Group);
      is = 1;
    }
 
  if (!is) printf("Студенты с баллом успеваемости > 4 отсутствуют.\n");
 
  return 0;
}

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

  1. В начале кода определена структура Студент с полями Name, Group и Ses.
  2. Затем в функции main создается массив Stud1 типа Student на максимальное количество студентов, которое определяется константой MAX_STUDENTS.
  3. Далее происходит ввод данных для каждого студента: сначала вводится имя, затем группа и наконец оценка успеваемости.
  4. После ввода данных для всех студентов выводится горизонтальная линия.
  5. Затем происходит сортировка массива Stud1 по возрастанию значения поля Group.
  6. Далее происходит проверка, есть ли студенты с оценкой успеваемости больше 4, и если есть, то выводится их имя и группа.
  7. Если студентов с оценкой успеваемости больше 4 нет, выводится соответствующее сообщение.
  8. В конце функции main возвращается 0, что означает успешное выполнение программы.

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


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

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

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