C/C++

C++ | Структуры и массивы структур. Помогите пожалуйста!

Постановка задачи:
1. Сформировать массив из элементов структурного типа. Структурный тип определен в варианте. Ввести данные для десяти элементов массива.
2. Вывести массив на экран.
3. Выполнить поиск элементов в массиве, удовлетворяющих заданному в варианте условию. Вывести найденные элементы на экран. В случае отсутствия таких элементов, вывести сообщение об этом.

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

(Анкету ребенка сделать в int main через for)
(Надо чтобы средний рост девочек был отдельной функцией и данные по девочкам, чье имя совпадает)
Я еще не настолько профи, чтобы деньги брать.

#include <iostream>
#include <iomanip>
#include <Windows.h>
using namespace std;

struct child
{
string name{}; //имя
uint16_t height{}; //рост
bool ismale{}; //пол
};

void print(child* vec, uint16_t size, string name = "")
{
bool chk = false;
for (int i = 0;i<size;i++)
if (vec[i].name == name || !name.length()) {
cout << setw(10) << vec[i].name << setw(7) << vec[i].height << endl; chk = true;
}
if (name.length() && !chk) cout << "Данного имени нет в списках\n";
}

double height(child* vec, uint16_t size)
{
double h = 0;
int count = 0;
for (uint16_t i = 0; i < size; i++) if (!vec[i].ismale) h += vec[i].height, count++;
return h ? h / count : 0; //если рост пуст - вернуть нуль.
}

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
cout << "Введите размер списка:\n";
int size; cin >> size;
child* childs = new child[size];
cout << "Вводите данные: имя, рост (в см), пол (0-девочка, 1-мальчик)\n";
for (int i = 0; i < size; i++)
{
cout << i+1 << "):\n";
cin >> childs[i].name >> childs[i].height >> childs[i].ismale;
}
print(childs,size);
double aver = height(childs, 5);
if (!aver) cout << "Девочек в списке нет\n"; else cout << "Средний рост девочек: " << setprecision(2) << fixed << aver << " см\n";
cout << "Введите имя для поиска:\n";
string name;
cin >> name;
print(childs, size, name);
delete[] childs;
}
Сергей Ткачев
Сергей Ткачев
51 416
Лучший ответ