Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Задание 1 */
- struct Point {
- float x, y, z;
- };
- int quest1() {
- struct Point A, B;
- setlocale(0, ".1251");
- printf("Введите координаты X, Y и Z точки A через пробел соответственно: ");
- scanf_s("%f %f %f", &A.x, &A.y, &A.z);
- printf("Введите координаты X, Y и Z точки B через пробел соответственно: ");
- scanf_s("%f %f %f", &B.x, &B.y, &B.z);
- printf("Расстояние между точками: %.2f\n", sqrt(pow(A.x-B.x, 2) + pow(A.y - B.y, 2) + pow(A.z - B.z, 2)));
- return 0;
- }
- /* Задание 2 */
- struct Student {
- char surname[25], name[25], patronymic[25], group[10];
- int marks[5];
- };
- int quest2() {
- const int N = 3;
- struct Student students[N];
- int k;
- char thisGroup[10];
- setlocale(0, ".1251");
- for (int i = 0; i < N; i++) {
- printf("Данные %d студента:\n", i+1);
- printf("Фамилия студента: ");
- scanf_s("%s", students[i].surname, 25);
- printf("Имя студента: ");
- scanf_s("%s", students[i].name, 25);
- printf("Отчество студента: ");
- scanf_s("%s", students[i].patronymic, 25);
- printf("Группа: ");
- scanf_s("%s", students[i].group, 10);
- for (int j = 0; j < 5; j++) {
- do {
- printf("%d оценка: ", j + 1);
- scanf_s("%d", &students[i].marks[j]);
- if (students[i].marks[j] > 5 || students[i].marks[j] < 1)
- puts("Не верные данные, попробуйте еще раз.");
- } while (students[i].marks[j] > 5 || students[i].marks[j] < 1);
- }
- }
- /* Список студентов, чей средний балл ВЫШЕ 4.0*/
- puts("\nСписок студентов, чей средний балл выше 4:");
- k = 0;
- for (int i = 0; i < N; i++) {
- float s = 0;
- for (int j = 0; j < 5; j++) {
- s += students[i].marks[j];
- }
- s /= 5;
- if (s > 4) {
- k++;
- setlocale(0, ".866");
- printf("%d) %s %s %s - %s ", k, students[i].surname, students[i].name, students[i].patronymic, students[i].group);
- setlocale(0, ".1251");
- printf("Средний балл: %.2f\n", s);
- }
- }
- if (k == 0)
- puts("Таких студентов нет.");
- for (int i = 0; i < N - 1; i++) {
- for (int j = 0; j < N - i - 1; j++) {
- // Сравнение групп
- int a = strcmp(students[j].group, students[j + 1].group);
- if(a == 0) // Если группы одинаковы, сортируем по фамилии
- a = strcmp(students[j].surname, students[j+1].surname);
- if(a == 0) // Если фамилии одинаковы, сортируем по имени
- a = strcmp(students[j].name, students[j + 1].name);
- if (a == 0) // Если имена одинаковы, сортируем по отчеству
- a = strcmp(students[j].patronymic, students[j + 1].patronymic);
- if (a == 1) {
- struct Student b = students[j + 1];
- students[j + 1] = students[j];
- students[j] = b;
- }
- }
- }
- /* Выводим список групп со студентами в алфовитном порядке порядке */
- printf("\nСписок студентов:");
- for (int i = 0; i < N; i++) {
- if (i == 0 || strcmp(students[i].group, thisGroup) != 0) {
- strcpy_s(thisGroup, students[i].group);
- setlocale(0, ".1251");
- printf("\nГруппа ");
- setlocale(0, ".866");
- printf("%s:\n", thisGroup);
- k = 0;
- }
- setlocale(0, ".866");
- k++;
- printf("%d) %s %s %s\n", k, students[i].surname, students[i].name, students[i].patronymic);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement