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

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

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

поиск логической ошибки - C++

13.10.2011, 23:14. Просмотров 468. Ответов 1
Метки нет (Все метки)

Народ помогите плиз найти ошибку в коде. Препод нашел и сказал исправить.
задача такая:
На посвящение в студенты собрались все первокурсники. Некоторые из них знают друг друга. Считается, что два незнакомых человека тоже друзья, если у них есть какой-нибудь общий друг. Группа студентов, которые больше ни с кем не знакомы, называется "тусовкой". Студенты из различных "тусовок" не имеют общих знакомых. Необходимо узнать, сколько всего существует "тусовок".
Формат входного файла:
В первой строке входного файла INPUT.TXT записано целое число N - количество первокурсников. Во второй строке входного файла INPUT.TXT записано целое число K - количество известных непосредственных знакомств. Далее в следующих K строках записано по паре целых чисел Ai и Bi через один пробел, означающих, что первокурсники с номерами Ai и Bi знакомы непосредственно. Ограничения на значения: 1≤N≤1000, 0≤K≤1000000, 1≤Ai≤N, 1≤Bi≤N, i=1..N. Гарантируется, что для предложенного набора данных результат всегда существует. Каждая строка заканчивается переходом на новую строку.
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
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
 
bool mass[1000][1000];
bool mass2[1000];
 
int main()
{   
    queue<int> myqueue;
    int N,k;
    int buf,buf2,count=0;
    ifstream fin("input.txt");
    fin>>N;
    fin>>k;
 
    for(int i=0; i<k;i++)
    {
        fin>>buf;
        fin>>buf2;
        if(buf==buf2&&i==0)count=1;
        mass[buf-1][buf2-1]=1;
        if(myqueue.empty())
        {
            myqueue.push(buf);
            mass2[buf-1]=true;
        }
        mass[buf2-1][buf-1]=true;
    }
    
    fin.close();
    ofstream fout("output.txt");
    for(int i=0; i<N; i++)
    {
        if(mass2[i]==false)
        {myqueue.push(i+1);
        while(!myqueue.empty())
    {   
        buf=myqueue.front();
        myqueue.pop();
        for(int j=0; j<N; j++)
        {
            if(mass[buf-1][j]==true)
            {
                myqueue.push(j+1);
                mass[buf-1][j]=false;
                mass[j][buf-1]=false;
                mass2[j]=true;
            }
        }   
    }
    count++;
        }
    }
    fout<<count;
    fout.close();
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2011, 23:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос поиск логической ошибки (C++):

Поиск ошибки - C++
В чем может быть ошибка? никак не пойму.. Препод говорит что задача решена неверно. #include&lt;iostream&gt; using namespace std; ...

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

Поиск ошибки - C++
Здравствуйте дорогие форумчане. Есть следующая задача. Во вводимы массивах элементы расставлять по убыванию, если сумма элементов &lt;0, по...

Поиск ошибки - C++
Выдает ошибку, если запустить программу и ввести q. Выкладываю скриншот ошибки. #include &lt;iostream&gt; #include &lt;cctype&gt; ...

Поиск ошибки. - C++
Программа работает правильно, но преподаватель говорит, что есть нехорошая ошибка. Никак не могу ее найти. Помогите найти ее пожалуйста.....

Поиск ошибки в fread - C++
У меня возникла ошибка. Мне нужно прочесть данные с бинарных файлов. Бинарный файл &quot;a.dat&quot; содержит в себе числа '7 0 1 0 1 0 1 0 2 6 2',...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.10.2011, 01:01 #2
hastam,
Контрпример:
4
1
2 3
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2011, 01:01
Привет! Вот еще темы с ответами:

Поиск ошибки в программе. - C++
Требуется решить следующее уравнение 5*x+\sqrt{\left| cos(x)\right|}-\frac{4}{3}=0 О_о методом простых итераций (x=0,0668904). Вот код //...

Поиск ошибки в коде - C++
Здравствуйте Уважаемые форумчане. Вот есть код: #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using...

Поиск ошибки в арифметической задаче - C++
Исправьте ошибку кто знает #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { double x,y; ...

Поиск ошибки в сортировке массива - C++
нужно выполнить сортировку введенного массива, n - число элементов. Однако выводит по-прежнему исходный массив. Подскажите пожалуйста -...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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