М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
emeli2007
emeli2007
08.03.2021 03:26 •  Другие предметы

1. Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы;
• GROUP- номер группы;
• SES- успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия :
• ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
• вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2;
• если таких студентов нет, вывести соответствующее сообщение.
c++​

👇
Ответ:
Хорошо, я с удовольствием помогу вам с этим вопросом. Вот решение задачи на языке C++:
```cpp
#include
#include
#include

using namespace std;

struct STUDENT {
string NAME;
int GROUP;
int SES[5];
};

bool compare(const STUDENT &s1, const STUDENT &s2) {
return s1.NAME < s2.NAME;
}

int main() {
const int SIZE = 10;
STUDENT STUD1[SIZE];

// Ввод данных с клавиатуры и упорядочивание по алфавиту
for (int i = 0; i < SIZE; i++) {
cout << "Введите фамилию и инициалы студента " << i + 1 << ": ";
cin >> STUD1[i].NAME;
cout << "Введите номер группы студента " << i + 1 << ": ";
cin >> STUD1[i].GROUP;
cout << "Введите оценки студента " << i + 1 << ": ";
for (int j = 0; j < 5; j++) {
cin >> STUD1[i].SES[j];
}
sort(STUD1, STUD1 + i + 1, compare); // Сортировка массива структур по алфавиту
}

bool flag = false; // Флаг, указывающий на наличие студентов с оценкой 2

// Вывод фамилий и номеров групп студентов с оценкой 2
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < 5; j++) {
if (STUD1[i].SES[j] == 2) {
cout << "Фамилия и инициалы: " << STUD1[i].NAME << endl;
cout << "Номер группы: " << STUD1[i].GROUP << endl;
flag = true; // Устанавливаем флаг в true
break;
}
}
}

// Вывод сообщения, если студентов с оценкой 2 нет
if (!flag) {
cout << "Студентов с оценкой 2 нет." << endl;
}

return 0;
}
```

Давайте разберем каждый этап решения подробнее:

1. Мы начинаем с определения структуры STUDENT, которая содержит поля NAME (фамилия и инициалы), GROUP (номер группы) и SES (массив из пяти элементов для успеваемости).

2. После определения структуры мы определяем функцию compare, которая сравнивает две структуры типа STUDENT на основе поля NAME. Эта функция будет использоваться для упорядочивания массива структур по алфавиту.

3. В функции main определена константа SIZE, которая указывает размер массива структур STUD1. Мы создаем этот массив и начинаем вводить данные с клавиатуры в цикле. Сначала мы запрашиваем фамилию и инициалы, номер группы, а затем оценки студента. Для каждого студента мы сортируем массив STUD1, чтобы он был упорядочен по алфавиту после каждой итерации цикла.

4. Мы также определяем флаг flag, который будет использоваться для проверки наличия студентов с оценкой 2.

5. После ввода данных мы переходим к выводу фамилий и номеров групп студентов с оценкой 2. Мы проходим по всему массиву STUD1 и проверяем каждую оценку студента. Если оценка равна 2, мы выводим фамилию и инициалы, а также номер группы студента. Если такой студент найден, флаг flag устанавливается в true.

6. Наконец, мы проверяем значение флага flag. Если оно осталось false, выводим сообщение "Студентов с оценкой 2 нет".

Это полное и подробное решение для задачи, которое должно быть понятным для школьников. Надеюсь, это помогло вам! Если у вас есть еще вопросы, не стесняйтесь задавать.
4,4(50 оценок)
Проверить ответ в нейросети
Новые ответы от MOGZ: Другие предметы
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ