В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
45667889
45667889
11.10.2021 07:00 •  Информатика

C++
2. В массиве хранится информация о количестве жильцов каждой квартиры пятиэтажного дома (4 подъезда, на каждом этаже по 2 квартиры).
а) по выбранному номеру квартиры определить количество жильцов, а также их соседей проживающих на одном этаже;
б) определить суммарное количество жильцов для каждого подъезда;
в) определить номера квартир, где живут многодетные семьи. Условно будем считать таковыми, у которых количество членов семьи превышает пять человек.

Показать ответ
Ответ:
Kate0526
Kate0526
12.10.2020 02:28

#include <iostream>

#include <vector>

using namespace std;

int main()

{

//создадим вектор и заполним случайными числами

vector<vector<pair<int, int>>> v(5, vector<pair<int, int>>(4));

for (auto& it1 : v) {

 for (auto& it2 : it1) {

  it2 = make_pair(rand()%6 + 1, rand()%6 + 1);

 }

}

//а) по квартире определим кол. жильцов и у соседей

cout << "Input apartment number: ";

int n;

cin >> n;

if (n % 2) {

 cout << "Apartment:" << v[(n % 30) / 2-1][(n - 1) / 10].first << endl;

 cout << "Neighbor:" << v[(n % 30) / 2-1][(n - 1) / 10].second << endl;

}

else {

 cout << "Apartment:" << v[(n % 30) / 2-1][(n - 1) / 10].second << endl;

 cout << "Neighbor:" << v[(n % 30) / 2-1][(n - 1) / 10].first << endl;

}

//суммарное количество жильцов в каждом подъезде

vector<int> v2(4,0);

for (int i = 0; i < 5;i++) {

 for (int j = 0; j < 4;j++) {

  v2[j] += v[i][j].first;

  v2[j] += v[i][j].second;

 }

}

for (auto it : v2) cout << it<<endl;

//Номера квартир многодетных семей

cout << endl;

for (int i = 0; i < 5; i++) {

 for (int j = 0; j < 4; j++) {

  if (v[i][j].first > 5) cout << j * 10 + (i + 1) * 2 - 1<<endl;

  if (v[i][j].second > 5) cout << j * 10 + (i + 1) * 2 <<endl;

 }

}

}

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота