1.Описать структуру, содержащую следующие поля:
• фамилия и инициалы;
• номер группы;
• успеваемость (3 предмета);
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из 5 структур
• вывод на дисплей фамилий и номеров групп для всех студентов, если средний балл студента больше 4,0, если таких студентов нет, вывести соответствующее сообщение.
C/C++
Решите задачу в си++ пожалуйста!!!
#include <iostream>
#include <iomanip>
#include <string>
#include <array>
using namespace std;
struct Student {
unsigned short first;
unsigned short second;
unsigned short third;
unsigned group;
string name;
Student() : first(0), second(0), third(0), group(0) {}
double average()const {
return double(first + second + third) / 3.0;
}
friend istream& operator>>(istream& inp, Student& s) {
cout << "Фамилия и инициалы: ";
getline(inp, s.name);
cout << "Номер группы: ";
inp >> s.group;
cout << "Первый предмет: ";
inp >> s.first;
cout << "Второй предмет: ";
inp >> s.second;
cout << "Третий предмет: ";
inp >> s.third;
inp.ignore(inp.rdbuf()->in_avail());
return inp;
}
friend ostream& operator<<(ostream& out, const Student& s) {
cout.setf(ios::fixed);
cout.precision(1);
out << s.name << ", " << s.group << "; ср. балл: " << s.average();
cout.unsetf(ios::fixed);
cout.precision(8);
return out;
}
};
int main() {
system("chcp 1251 > nul");
array<Student, 5> sheet;
for (auto& record : sheet) cin >> record;
puts("");
auto count = 0U;
for (const auto& record : sheet) {
if (record.average() > 4.0) {
cout << ++count << ". " << record << '\n';
}
}
if (!count) puts("Поиск не дал результатов!");
system("pause > nul");
}
#include <iomanip>
#include <string>
#include <array>
using namespace std;
struct Student {
unsigned short first;
unsigned short second;
unsigned short third;
unsigned group;
string name;
Student() : first(0), second(0), third(0), group(0) {}
double average()const {
return double(first + second + third) / 3.0;
}
friend istream& operator>>(istream& inp, Student& s) {
cout << "Фамилия и инициалы: ";
getline(inp, s.name);
cout << "Номер группы: ";
inp >> s.group;
cout << "Первый предмет: ";
inp >> s.first;
cout << "Второй предмет: ";
inp >> s.second;
cout << "Третий предмет: ";
inp >> s.third;
inp.ignore(inp.rdbuf()->in_avail());
return inp;
}
friend ostream& operator<<(ostream& out, const Student& s) {
cout.setf(ios::fixed);
cout.precision(1);
out << s.name << ", " << s.group << "; ср. балл: " << s.average();
cout.unsetf(ios::fixed);
cout.precision(8);
return out;
}
};
int main() {
system("chcp 1251 > nul");
array<Student, 5> sheet;
for (auto& record : sheet) cin >> record;
puts("");
auto count = 0U;
for (const auto& record : sheet) {
if (record.average() > 4.0) {
cout << ++count << ". " << record << '\n';
}
}
if (!count) puts("Поиск не дал результатов!");
system("pause > nul");
}
Смысл? Как экзамен потом сдашь? Если ты думаешь "я увижу ответ и мне сразу дойдёт", то это так не работает. Дадут тебе немного иную задачу, опять тупить будешь. Открывай учебник/интернет ресурс или записывайся на консультацию к преподавателю.
Похожие вопросы
- Помогите пожалуйста решить задачу на Си
- Помогите решить задачу на си!!!
- Помогите решить задачу на СИ!
- Помогите решить задачу на СИ желательно с объяснением
- Решить задачу на языке СИ
- Помогите решить задачу на структуры в Си.
- Помогите пожалуйста решить задачу на языке СИ или С# !!!
- Помогите решить задачу, пожалуйста. (Язык Си)
- Помогите решить задачу, пожалуйста. Сам не понимаю. (Язык Си)
- Помогите решить задачу на языке программирования Си, пожалуйста