Форум программистов, компьютерный форум 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
28.03.2014, 08:40     Заданы два человека – p и q. Ответить, являются ли они родственниками
1) Программа "не работает", т.к. я не делал ввод.
Родственные отношения заданы в строках 31-33.
номера людей, которые проверяются на родство - в строках 51-52.

2) в первом сообщении сказано,
Цитата Сообщение от Dominum Посмотреть сообщение
программа проверяет есть ли связь между этими ячейками, если есть, то они "РОДСТВЕННИКИ"
Если родственниками считаются только те, кто имеет общего предка, нужно делать по-другому:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <vector>
#include <queue>
 
// возвращает true, если first и second имеют общего предка
bool haveCommonAncestor(std::vector<std::vector<int>>&  graph, int first, int second)
{
    std::vector<bool> visitedByFirst(graph.size(), false);
    std::vector<bool> visitedBySecond(graph.size(), false);
    std::queue<int> to;
 
    // посещаем всех предков first
    to.push(first);
    visitedByFirst[first] = true;
    while (!to.empty())
    {
        int now = to.front();
        to.pop();
        for (int i = 0; i < graph[now].size(); ++i)
            if (!visitedByFirst[graph[now][i]])
            {
                visitedByFirst[graph[now][i]] = true;
                to.push(graph[now][i]);
            }
    }
 
    if (visitedByFirst[second])
        return true;
 
    to.push(second);
    visitedBySecond[second] = true;
    while (!to.empty())
    {
        int now = to.front();
        to.pop();
        for (int i = 0; i < graph[now].size(); ++i)
        {
            if (visitedByFirst[graph[now][i]])
                return true;
            if (!visitedBySecond[graph[now][i]])
            {
                visitedBySecond[graph[now][i]] = true;
                to.push(graph[now][i]);
            }
        }
    }
    return false;
}
 
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]);
        if (father[i] != -1)
            graph[i].push_back(father[i]);
    }
 
    int first; // q
    int second; // p
    std::cout << "Input number of first human: ";
    std::cin >> first;
    std::cout << "Input number of second human: ";
    std::cin >> second;
 
    if (haveCommonAncestor(graph, first, second))
        std::cout << "relatives\n";
    else
        std::cout << "not relatives\n";
 
    std::system("pause");
}
 
Текущее время: 22:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru