Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.02.2017
Сообщений: 5
1

Сортировка структур в порядке убывания среднего балла

19.02.2017, 03:36. Показов 3227. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вложение 800484
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Перепишите задачу в сообщение

ПОМОГИТЕ плес Решить уже всю голову сломала сделала сортировку по среднему баллу а вот с сортировкой по алфавиту в случае совпадение среднего балла никак толком не получаеться(
условие задачи на скрине

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream> 
    using namespace std;
 
struct student
{
    char name[32];
    double math;
    double phys;
    double info;
    float  avg;
};
double temp;
const int DefaultConstanta = 3;
void GetData(student *studentArray, int count);
void ShowData(student *studentsArray, int count);
int main()
 
{
 
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    int count, im, i, j;
    cin >> count;
    student *studentsArray = new student[count];
    student study1;
    GetData(studentsArray, count);
 
    int t = 1;
    student tmp;
 
 
 
    for (i = 0; i < count; i++)
    {
        studentsArray[i].avg = (studentsArray[i].math + studentsArray[i].phys + studentsArray[i].info) / DefaultConstanta;
    }
 
    for (i = 0; i < count - 1; i++)
    {
        im = i;
        for (j = i + 1; j < count; j++)
 
            if (studentsArray[im].avg <= studentsArray[j].avg)
            {
                im = j;
                study1 = studentsArray[i];
                studentsArray[i] = studentsArray[im];
                studentsArray[im] = study1;
            }
 
 
    //  for (int j = 0; j < count; j++)
    //  {
    //      for (int i = j; i < count; i++) t = studentsArray[i].name[0] < studentsArray[t].name[0] ? i : t;
//
    //      tmp = studentsArray[j];
        //  studentsArray[j] = studentsArray[t];
        //  studentsArray[t] = tmp;
 
//      }
 
 
    }
 
    ShowData(studentsArray, count);
    return 0;
}
void GetData(student *studentsArray, int count)
{
    for (int i = 0; i < count; i++)
    {
        cin >> studentsArray[i].name;
 
        cin >> studentsArray[i].math;
 
        cin >> studentsArray[i].phys;
 
        cin >> studentsArray[i].info;
 
    }
}
void ShowData(student *studentsArray, int count)
{
    for (int i = 0; i < count; i++)
    {
        temp = (studentsArray[i].math + studentsArray[i].phys + studentsArray[i].info) / DefaultConstanta;
 
        cout << studentsArray[i].name << " ";
        cout << studentsArray[i].math << " " << studentsArray[i].phys << " " << studentsArray[i].info << " ";
        printf("%.2f ", studentsArray[i].avg);
 
        cout << endl;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2017, 03:36
Ответы с готовыми решениями:

Вывести студентов в порядке убывания среднего балла
дан список студентов и список предметов,по которому сдавался экзамен. известны оценки по каждому...

Структуры: список студентов, вывод в порядке убывания среднего балла
Задача: Дан список студентов, включающий в себя ФИО, 4 оценки, город проживания студента и...

Выведите фамилии и имена учащихся в порядке убывания их среднего балла
Выведите фамилии и имена учащихся в порядке убывания их среднего балла. Формат входных данных ...

Выведите фамилии и имена учащихся в порядке убывания их среднего балла
Помогите, пожалуйста, с решением, последний тест не проходит, пишет &quot;превышено максимальное время...

2
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
19.02.2017, 07:26 2
Для сортировки текстовых данных надо использовать функцию
C++
1
strcmp(char* txt1,char* txt2);
Она возвращает единицу, если txt1 лексически расположена раньше txt2,
минус единицу - если наоборот и ноль - если одинаковые.
И для копирования строк используйте
C++
1
strcpy(char* to,char* from);
0
1 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 12
19.02.2017, 14:20 3
Та я читала про сравнение строк а как это все правильно записать так и не поняла(
0
19.02.2017, 14:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2017, 14:20
Помогаю со студенческими работами здесь

Выведите фамилии и имена студентов в порядке убывания их среднего балла
Выведите фамилии и имена студентов в порядке убывания их среднего балла

Сортировка структур в порядке убывания
Здраствуйте Мне вот нужно : Вывести список сотрудников заданного отдела в порядке убывания стажа....

Вычисления среднего балла в массиве структур
Структура информации о студенте содержит следующие элементы: • Имя • Группа • Массив оценок •...

Отсортировать данные в порядке убывания среднего балла
Задан массив записей, в котором определены поля Ф.И.О. студента и его средний балл....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru