Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2022, 05:01   #1
Sanseya
Новичок
Джуниор
 
Регистрация: 09.06.2022
Сообщений: 3
По умолчанию C++ | Структуры и массивы структур. Помогите пожалуйста!

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

Задание:
Определить структурный тип для представления анкеты ребенка, состоящей из его имени, пола и роста. Определить средний рост девочек. Вывести данные по девочкам, чье имя совпадает с введенным с клавиатуры.
Sanseya вне форума Ответить с цитированием
Старый 09.06.2022, 08:50   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
#include <iostream>

using namespace std;

// 1) Пункт ...
struct TChild {
  char name[62];
  char sex;
  unsigned char height;
};

TChild childrens[10];

int main() {
  double a = 0.0f;
  int c = 0;
  char name[62];
// 1) Продолжение. Ввод данных а массив. При вводе вместо имени пустой строки - прерывание
  for (int i = 0, j; i < 10; i++) {
    cin >> childrens[i].name;
    for (j = 0; childrens[i].name[j++];);
    if (!j) break;
    cin >> childrens[i].sex;
    cin >> j;
    childrens[i].height = j;
    if (childrens[i].sex == 'f') {
      a += j;
      c++;
    }
  }
// 1) Продолжение. Вывод среднего роста девочек
  if (!c) {
    cout << "No!";
  } else {
    cout << (double)(a / c) << endl;
  }
// 2) Пункт. Вывод массива
  for (int i = 0; i < 10; i++) cout << i + 1 << ") " << childrens[i].name << " = " << (int)childrens[i].height << ((childrens[i].sex == 'f')? " female" : " male") << endl;
// 3) Пункт. Вывод всех записей с одинаковым (заданным) именем.
  cin >> name;
  c = 0;
  for (int i = 0, j; i < 10; i++) {
    j = 0;
    for (char *f = name, *s = childrens[i].name; !j && f[0] | s[0]; j = f++[0] - s++[0]);
    if (!j && childrens[i].sex == 'f') cout << ++c << ") " << name << " = " << (int)childrens[i].height << " female" << endl;
  }
  if (!c) cout << "No!";
  return 0;
}
Уже 1`000`000 раз такое решалось

Последний раз редактировалось macomics; 09.06.2022 в 10:01.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры.Обработка массивов структур.Создать массив структур из 10-ти элементов molotokan Общие вопросы C/C++ 0 16.02.2019 20:23
Вообщим написал программу без структур теперь не знаю как добавить структуры для выполнения всего задания помогите хоть какнибудь прайдС++ C++ Builder 0 14.10.2014 08:48
С++. Структуры и массивы структур. Дан массив записей, содержащий сведения о книгах: фамилия автора, название книги, год издания Beauty44 Помощь студентам 3 21.09.2013 13:14
C++,структуры,NEW,массивы из структур -ushёl- Помощь студентам 2 15.11.2009 20:18
Помогите пожалуйста сделать лабу...С++...динамические структуры. smlenchik Помощь студентам 0 19.10.2009 21:50