Исправить ошибки в структуре "Студент" - 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;
}
Объяснение кода листинга программы
- В начале кода определена структура
Студентс полями Name, Group и Ses. - Затем в функции main создается массив Stud1 типа Student на максимальное количество студентов, которое определяется константой MAX_STUDENTS.
- Далее происходит ввод данных для каждого студента: сначала вводится имя, затем группа и наконец оценка успеваемости.
- После ввода данных для всех студентов выводится горизонтальная линия.
- Затем происходит сортировка массива Stud1 по возрастанию значения поля Group.
- Далее происходит проверка, есть ли студенты с оценкой успеваемости больше 4, и если есть, то выводится их имя и группа.
- Если студентов с оценкой успеваемости больше 4 нет, выводится соответствующее сообщение.
- В конце функции main возвращается 0, что означает успешное выполнение программы.