Форум программистов, компьютерный форум CyberForum.ru

Заданы два человека – p и q. Ответить, являются ли они родственниками - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести все числа Армстронга в заданном интервале http://www.cyberforum.ru/cpp-beginners/thread1125565.html
Здравствуйте, В универе дали задание: вывести все числа Армстронга в интервале ; Понимаю что это уже давно сделали, но я хотел свою версию. Понимаю что полный говнокод, но все же где ошибка? Программа нормально компилируется и запускается, но при вводе a и b программа закрывается и windows предлагает отладить ее. Кстати на MVS 2013 все отлично работает(на ней то я и писал). Обнаружил что...
C++ Степенной метод нахождения наибольшего по модулю собственного значения и соответствующего ему собственного вектора Привет всем. Есть код программы, но почему то он не работает, подскажите в чем дело, может ввожу неправильно. Тестовый пример: Матрица А: 4 2 2 2 5 1 2 1 6 Матрица x1: http://www.cyberforum.ru/cpp-beginners/thread1125554.html
Составить программу формирования массива, элементами которого являются цифры числа N C++
Здравствуйте))) Хотел спросить правильно работает программа соответствует с условием задачи?? А то какие то сомнения. Дано натуральное число N. Составить программу формирования массива, элементами которого являются цифры числа N. #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; int main(void)
Выяснить фамилии пациентов, которые обращались в больницу больше трех раз в год. Исправить ошибки в коде C++
Здравствуйте! возникли небольшие сложности с решением данной задачи, помогите пожалуйста разобраться, в чем моя ошибка, помогите доделать? задание: имеются сведения о посещении пациентами больницы: фамилия пациента, дата рождения, дата посещения, участок, фамилия врача, диагноз. Выяснить фамилии пациентов, которые обращались в больницу больше трех раз в год. Выбрать врача который за год...
C++ Функция возвращает странное значение http://www.cyberforum.ru/cpp-beginners/thread1125522.html
Да, понимаю, что скорее всего ошибка глупая, но голова разбитая и найти не могу. Прилагаю полный код. В самом низу будет код основной программы и под ней напишу на какой строчке какая функция возвращает ересь. P.S. саму функцию полностью дебажил - работает корректно =( #pragma once #include <iostream> struct Pair { int key; int prev; Pair(void) : key(0), prev(0){};
C++ Встроенный редактор кода не подсвечивает парные фигурные скобки Видел в шапке много всяких вариантов, но я так понял, в тех, что я видел, встроенный редактор кода не подсвечивает парные фигурные скобки вот так как в делфи, он внизу на скрине (не знаю как сделать картинку первой, потом код с++). Есть подсветка в Dev-Cpp, го там она имхо странная. Ставишь курсор перед первой скобкой она выделяется и парная выделяется. Может как то можно там еще сделать... подробнее

Показать сообщение отдельно
Eldies
89 / 80 / 28
Регистрация: 06.02.2014
Сообщений: 119
22.03.2014, 11:08     Заданы два человека – p и q. Ответить, являются ли они родственниками
Если нарисовать всех этих людей и связи между ними, то получится граф.
Если p и q находятся в одной компоненте связности, то они - родственники.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <vector>
#include <queue>
 
// возвращает true, если first и second находятся в одной компоненте связности
bool areConnected(std::vector<std::vector<int>>&  graph, int first, int second)
{
    std::vector<bool> visited(graph.size(), false);
    std::queue<int> to;
 
    to.push(first);
    visited[first] = true;
 
    while (!to.empty())
    {
        int now = to.front();
        to.pop();
        for (int i = 0; i < graph[now].size(); ++i)
            if (!visited[graph[now][i]])
            {
                visited[graph[now][i]] = true;
                to.push(graph[now][i]);
            }
    }
 
    return visited[second];
}
 
void main(void)
{
    int n = 10;
    int mother[10]={-1,-1,1,-1,-1,4,5,5,7,-1};
    int father[10]={-1,-1,0,-1,-1,3,2,-1,6,-1};
 
    std::vector<std::vector<int>> graph(n);
    // преобразуем в более удобный вид
    for(int i = 0; i < n; ++i)
    {
        if (mother[i] != -1)
        {
            graph[i].push_back(mother[i]);
            graph[mother[i]].push_back(i);
        }
        if (father[i] != -1)
        {
            graph[i].push_back(father[i]);
            graph[father[i]].push_back(i);
        }
    }
 
    int first = 0; // q
    int second = 1; // p
    
    if (areConnected(graph, first, second))
        std::cout << "relatives\n";
    else
        std::cout << "not relatives\n";
 
    std::system("pause");
}
 
Текущее время: 07:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru