В населенном пункте проживает N человек. О каждом известны
фамилия, возраст, пол. Ввести информацию о жителях данного
пункта и посчитать средний возраст женщин и мужчин, вывести
информацию о тех у кого возраст больше среднего.
C/C++
Программирование С++ помогите пожалуйста
#include <iostream>
#include <string>
#include <vector>
using namespace std;
short integer(const char* msg, istream& inp = cin) {
cout << msg;
short value;
inp >> value;
inp.ignore(inp.rdbuf()->in_avail());
return value;
}
char character(const char* msg, istream& inp = cin) {
cout << msg;
char ch = inp.get();
inp.ignore(inp.rdbuf()->in_avail());
return ch;
}
struct Person {
char sex;
short age;
string name;
Person() : sex('-'), age(0) {}
friend istream& operator>>(istream& inp, Person& p) {
cout << "Ф. И. О.: ";
getline(inp, p.name);
p.age = integer("Возраст: ", inp);
p.sex = character("Пол (м/ж): ", inp);
return inp;
}
};
class Locality {
public:
void add(const Person& p) {
box.push_back(p);
}
double average(char age)const {
auto sum = 0.;
auto count = 0;
for (const auto& x : box) {
if (x.sex == age) {
sum += x.age;
++count;
}
}
if (!count) ++count;
return sum / count;
}
void show(double age, char sex) {
for (const auto& x : box) if (x.sex == sex && x.age > age) {
cout << x.name << ", " << x.age << " лет. \n";
}
puts("");
}
private:
vector<Person> box;
};
int main() {
system("chcp 1251 > nul");
auto n = integer("N: ");
Locality loc;
for (auto i = 0; i < n; ++i) {
Person p;
cin >> p;
loc.add(p);
}
puts("");
auto am = loc.average('м');
cout << "Ср. возраст муж. населения: " << am << '\n';
loc.show(am, 'м');
auto aw = loc.average('ж');
cout << "Ср. возраст жен. населения: " << aw << '\n';
loc.show(aw, 'ж');
system("pause > nul");
}
#include <string>
#include <vector>
using namespace std;
short integer(const char* msg, istream& inp = cin) {
cout << msg;
short value;
inp >> value;
inp.ignore(inp.rdbuf()->in_avail());
return value;
}
char character(const char* msg, istream& inp = cin) {
cout << msg;
char ch = inp.get();
inp.ignore(inp.rdbuf()->in_avail());
return ch;
}
struct Person {
char sex;
short age;
string name;
Person() : sex('-'), age(0) {}
friend istream& operator>>(istream& inp, Person& p) {
cout << "Ф. И. О.: ";
getline(inp, p.name);
p.age = integer("Возраст: ", inp);
p.sex = character("Пол (м/ж): ", inp);
return inp;
}
};
class Locality {
public:
void add(const Person& p) {
box.push_back(p);
}
double average(char age)const {
auto sum = 0.;
auto count = 0;
for (const auto& x : box) {
if (x.sex == age) {
sum += x.age;
++count;
}
}
if (!count) ++count;
return sum / count;
}
void show(double age, char sex) {
for (const auto& x : box) if (x.sex == sex && x.age > age) {
cout << x.name << ", " << x.age << " лет. \n";
}
puts("");
}
private:
vector<Person> box;
};
int main() {
system("chcp 1251 > nul");
auto n = integer("N: ");
Locality loc;
for (auto i = 0; i < n; ++i) {
Person p;
cin >> p;
loc.add(p);
}
puts("");
auto am = loc.average('м');
cout << "Ср. возраст муж. населения: " << am << '\n';
loc.show(am, 'м');
auto aw = loc.average('ж');
cout << "Ср. возраст жен. населения: " << aw << '\n';
loc.show(aw, 'ж');
system("pause > nul");
}
Похожие вопросы
- Программирование С++ помогите пожалуйста!
- Программирование С++. Помогите, пожалуйста, решить задачу.
- Программирование С++. Помогите, пожалуйста, написать код (по-проще как-нибудь)
- Программирование С++, помогите,пожалуйста
- Программирование пожалуйста быстрее, и блок схему нужно тоже, помогите пожалуйста
- Программирование C++.Помогите решить пожалуйста
- Программирование помогите пожалуйста. Подскажите формулу к d
- Помогите пожалуйста сделать задачу по программированию C++
- Помогите пожалуйста с программированием на C++
- Здравствуйте помогите пожалуйста программирование c++