Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- struct Student
- {
- char firstName[20];
- char middleName[20];
- char lastName[20];
- char sex;
- char faculty[20];
- int group;
- char address[20];
- int course;
- int marks[5];
- bool isFrequentGroup;
- };
- // 1 5 1 5 4 7 89 1 4 1 2
- char* getMostFrequentLastName(Student* students, int size)
- {
- int tmpCount;
- int maxCount = 0;
- char* lastName = "";
- for (int i = 0; i < size; i++)
- {
- tmpCount = 0;
- for (int j = i + 1; j < size; j++)
- {
- if (strcmp(students[i].lastName, students[j].lastName) == 0 &&
- students[i].sex == 'М' && strcmp(students[i].faculty, "ИВТ") == 0)
- {
- tmpCount++;
- }
- }
- if (tmpCount > maxCount)
- {
- maxCount = tmpCount;
- lastName = students[i].lastName;
- }
- }
- return lastName;
- }
- void Sort(Student* students, int size, char* frequentLastName)
- {
- Student tmpStudent;
- for (int i = 0; i < size; i++)
- {
- if (strcmp(students[i].lastName, frequentLastName) == 0)
- {
- students[i].isFrequentGroup = true;
- }
- }
- for (int i = 0; i < size - 1; i++)
- {
- for (int j = 0; j < size - i - 1; j++)
- {
- if ((students[j].isFrequentGroup > students[j + 1].isFrequentGroup) ||
- students[j].group < students[j + 1].group)
- {
- tmpStudent = students[j];
- students[j] = students[j + 1];
- students[j + 1] = tmpStudent;
- }
- }
- }
- }
- void PrintStudents(Student* students, int size, char* f = "")
- {
- for (int i = 0; i < size; i++)
- {
- if (strcmp(students[i].faculty, "ИВТ") == 0)
- {
- printf("%s%s %s %s %c %i %s %s %i [%i %i %i %i %i]\n",
- strcmp(students[i].lastName, f) == 0 ? "***" : "",
- students[i].lastName, students[i].firstName, students[i].middleName,
- students[i].sex, students[i].group, students[i].faculty,
- students[i].address, students[i].course, students[i].marks[0],
- students[i].marks[1], students[i].marks[2], students[i].marks[3],
- students[i].marks[4]);
- }
- }
- printf("\n");
- }
- void main()
- {
- setlocale(0, "RU");
- const int size = 10;
- Student students[size];
- FILE* file;
- Student tmp;
- int count = 0;
- file = fopen("students.txt", "r");
- for (int i = 0; i < size; i++)
- {
- fscanf(file, "%s\n", &tmp.lastName);
- fscanf(file, "%s\n", &tmp.firstName);
- fscanf(file, "%s\n", &tmp.middleName);
- fscanf(file, "%c\n", &tmp.sex);
- fscanf(file, "%s\n", &tmp.faculty);
- fscanf(file, "%i\n", &tmp.group);
- fscanf(file, "%s\n", &tmp.address);
- fscanf(file, "%i\n", &tmp.course);
- fscanf(file, "%i %i %i %i %i\n", &tmp.marks[0],
- &tmp.marks[1], &tmp.marks[2], &tmp.marks[3], &tmp.marks[4]);
- fscanf(file, "\n");
- students[i] = tmp;
- }
- char* frequentLastName = getMostFrequentLastName(students, size);
- PrintStudents(students, size);
- printf("Самая распространённая фамилия: %s\n", frequentLastName);
- Sort(students, size, frequentLastName);
- PrintStudents(students, size, frequentLastName);
- system("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement