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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
#1

написать программу с графом - C++

23.04.2013, 09:24. Просмотров 1177. Ответов 7
Метки нет (Все метки)

В клубе N человек. Многие из них - друзья. Так же
известно, что друзья друзей так же являются друзьями. Требуется выяснить, сколько
всего друзей у конкретного человека в клубе.
Входные данные
В первой строке входного файла INPUT.TXT заданы два числа: N и S (1 <= N
<= 100; 1 <= S <= N), где N - количество человек в клубе, а S – номер конкретного
человека. В следующих N строках записано по N чисел - матрица смежности,
состоящая из единиц и нулей. Причем единица, стоящая в i-й строке и j-м столбце
гарантирует, что люди с номерами i и j – друзья, а 0 – выражает неопределенность.
Выходные данные
В выходной файл OUTPUT.TXT выведите количество гарантированных
друзей у человека с номером S, помня о транзитивности дружбы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2013, 09:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос написать программу с графом (C++):

написать прогу с графом - C++
По таблице рёбер построить списки инцидентности ориентированного графа, удалить из графа вершины с номерами n1 и n2. Таблицу создать...

Задание графом - C++
Задан граф, вывести все пары вершин, между которыми нет пути. можете помочь???

Работа с Ориентированным графом - C++
Дан орграф. После удаления произвольных вершин может произойти всё что угодно, вопрос таков: Для каждого компонета связности выделить...

Алгоритм поиска пути в лабиринте, заданном связным графом - C++
использовать алгоритм поиска пути в лабиринте, заданном связным графом. граф уже задан в самой программе. Пример: int mas = {...

Работа с графом (Требуется по заявке клиента предложить способы обмена жилплощади) - C++
В файле записаны предложения по обмену жилплощадью. Имеются варианты размена одной квартиры на две других либо на квартиру и комнату....

Написать класс по строительству домов. Написать программу, демонстрирующую работу с классом. - C++
Собственно, в С++ немного насасываю, код читать умею, а прогать - нет. К сожалению, обстоятельства сложились так, что я поступил именно...

7
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
23.04.2013, 12:26 #2
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
#include <string>
#include <vector>
#include <fstream>
 
using namespace std;
 
int main()
{
    // read input data
    ifstream inp("input.txt");
    int n, s;
    inp >> n >> s;
    vector<vector<int> > m(n, vector<int>(n));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            inp >> m[i][j];
        }
    }
 
    // make symmetric
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (m[i][j])
                m[j][i] = 1;
        }
    }
 
    // transitive closure
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (m[i][j]) {
                for (int k = 0; k < n; ++k) {
                    if (m[j][k])
                        m[i][k] = 1;
                }
            }
        }
    }
 
    // count friends
    int count = 0;
    for (int i = 0; i < n; ++i) {
        if (m[s - 1][i])
            count++;
    }
 
    // write result
    ofstream out("output.txt");
    out << count;
}
Цитата Сообщение от input.txt
5
2
0 1 0 1 0
1 0 0 0 0
0 0 0 0 1
0 1 0 0 0
0 0 0 0 0
Цитата Сообщение от output.txt
3
1
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
23.04.2013, 22:20  [ТС] #3
программа не работает, я не могу понять почему
0
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
23.04.2013, 22:28 #4
Цитата Сообщение от Alexandri Посмотреть сообщение
программа не работает, я не могу понять почему
На каком конкретно input.txt не работает?
0
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
23.04.2013, 22:55  [ТС] #5
начала с вашего примера, открывает консольное окно и ничего не выводит, кроме "Для продолжения..."
0
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
24.04.2013, 00:01 #6
Цитата Сообщение от Alexandri Посмотреть сообщение
открывает консольное окно и ничего не выводит
Все правильно:

Цитата Сообщение от Alexandri Посмотреть сообщение
Входные данные
В первой строке входного файла INPUT.TXT...
Выходные данные
В выходной файл OUTPUT.TXT выведите...
Зачем что-то на экран выводить?
0
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
24.04.2013, 00:51  [ТС] #7
что то я протупила конкретно хD
я извиняюсь))

Добавлено через 18 секунд
все работает, спасибо вам большое)
0
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
29.04.2013, 22:57  [ТС] #8
наконец то дошла до этой задачи и перерешив у меня наконец то вышло все правильно))
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
#include<iostream>
 
using namespace std;
 
int main()
{
    freopen("input.txt","r",stdin);
    int T[100][100],N,S;
    cin>>N>>S;
    for(int i=0; i<N;i++)
{
for(int j=0;j<N;j++)
{
cin>>T[i][j]; 
}
}
    for(int i=0; i<N;i++)
{
    for(int j=0;j<N;j++)
{
cout<<T[i][j]<<" ";
}
cout<<endl;
}
 
    //count friends
    int count=0;
     for (int i = 0; i < N; i++)
     { 
        for (int j = 0; j < N; j++)
        {
            if (T[i][j]) 
            {
                for (int k = 0; k < N; k++) 
                {
                    if (T[j][k])
                        T[i][k] = 1;
                }
            }
        }
        if (T[S - 1][i])
            count++;
    }
     cout<<""<<count<<endl;
     freopen("output.txt","w",stdout);
 
return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2013, 22:57
Привет! Вот еще темы с ответами:

Надо написать программу на while или do while и написать алгоритм - C++
Помогите пожалуйста с задачей:(. Даны действительные числа x , y ( x &gt; 1). Получить наименьшее число вида xn,что превышает y , где n -...

Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя - C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя.

Разработать алгоритм и тесты, написать и отладить программу Выполнить программу, проанализировать результат - C++
Из матрицы У(k, k) получить вектор Т, элементами которого являются элементы главной диагонали матрицы.

Написать программу - C++
написать программу вы числящую сумму всех элементов матрицы целых чисел 3х3,расположенных над главной диагональю.Рнзультат вывести на экран


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
29.04.2013, 22:57
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru