Void main()
{ const int n = 3; int i, j;
struct student {
char fam[10];
float math, chem, fiz;
};
struct student1 {
char fam[10];
float srball;
};
student group[n];
student1 group1[n];
cout << "*****group*****";
cout << "\n";
for (i = 0;i < n;i++) {
cout << "\ngroup[" << i << "].fam="; cin >> group[i].fam;
cout << "\ngroup[" << i << "].math="; cin >> group[i].math;
cout << "\ngroup[" << i << "].chem="; cin >> group[i].chem;
cout << "\ngroup[" << i << "].fiz="; cin >> group[i].fiz;
}// ввод group с клавиатуры
cout << "\n";
for (i = 0;i < n;i++) {
for (j = 0;j < 10;j++)
group1[i].fam[j] = group[i].fam[j];// посимвольное копирование
group1[i].srball = (group[i].math + group[i].chem + group[i].fiz) / 3;
}…
…
Void main()
{ const int n = 3; int i, j;
struct student {
char fam[10];
float math, chem, fiz;
};
struct student1 {
char fam[10];
float srball;
};
student group[n];
student1 group1[n];
cout << "*****group*****";
cout << "\n";
group[0] = { "petrov",4.,5.,5.};
group[1] = { "sidorova",5.,5.,5.};
group[2] = { "ivanov",3.,4.,5.};
/*for (i = 0;i < n;i++) {
cout << "\ngroup[" << i << "].fam="; cin >> group[i].fam;
cout << "\ngroup[" << i << "].math="; cin >> group[i].math;
cout << "\ngroup[" << i << "].chem="; cin >> group[i].chem;
cout << "\ngroup[" << i << "].fiz="; cin >> group[i].fiz;
}// ввод group с клавиатуры*/
cout << "\n";
for (i = 0;i < n;i++) {
for (j = 0;j < 10;j++)
group1[i].fam[j] = group[i].fam[j];
group1[i].srball = (group[i].math + group[i].chem + group[i].fiz) / 3;
}…
Задача № 16.
Создать ведомость в виде массива структур с элементами:
фамилия;
средний балл.
Принять количество структур в массиве – 3.
Выполнить сортировку в массиве структур по убыванию среднего балла.
struct student {
STRING fam[10];
double srball;
};
student group[n],t[n];
В алгоритме сортировки сравниваем значения среднего балла
if (group[j].srball < group[j + 1].srball) {
t[j] = group[j]; group[j] = group[j + 1]; group[j + 1] = t[j];}
а перестановку структур выполняем целиком
t[j] = group[j]; group[j] = group[j + 1]; group[j + 1] = t[j];
используя вспомогательную переменную t[n].
Вывод массива структур group:
cout << "*****group new*****";
cout << "\n";
for (i = 0;i < n;i++) {
cout << "group[" << i << "].fam=" << '' << group[i].fam << '';
cout << "group[" << i << "].srball=" << '' << group[i].srball;
cout << "\n";
}