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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работает оператор gets() http://www.cyberforum.ru/cpp-beginners/thread366046.html
Господа, помогите! нужна прога для слипания строк, не используя стандартный оператор конкатенации. прога была написана и работала. теперь понадобилось переделать эту и еще несколько задач под классы и я столкнулась со следующей проблемой: gets() отказывается работать. при замене на cin прога работает правильно до первого пробела. в чем дело?
C++ [C++]Проблемы с вычитанием одномерного массива... Ситуация такая.. Надо сделать функцию, которая будет вычитать определенные элементы массива. Не могу разобраться как правильно записать результат вычисления... template<class T> T Math_SubEl(int count, T * a, int n) { T result = NULL; int * newMassive = new int ; int i = 0; int x; http://www.cyberforum.ru/cpp-beginners/thread366038.html
C++ Откуда можно скачать C++ Builder 6?
скачиваю с торрента серийный номер спрашивает.
Совершенные числа C++
Вводится число n, требуется вывести совершенные числа до n. #include "stdafx.h" #include <iostream> using namespace std; void main() { int n; cin >> n;
C++ Вычислить сумму ряда http://www.cyberforum.ru/cpp-beginners/thread366020.html
Решил выложить решенную задачу с лабораторной работы: Задание: см. рисунок! Листинг: #include "stdafx.h" #include <stdio.h> #include <conio.h>
C++ Как использовать функцию getline есть программа структура о книгах, с поиском по дате из-за функции cin можно ввести только одно слово так как после пробела cin не видет, препод сказал использовать ф-цию getline я почитал пару посто но разобратся не смог помогите, плиз #include <iostream> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iomanip> подробнее

Показать сообщение отдельно
hastam
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 12
13.10.2011, 23:14     поиск логической ошибки
Народ помогите плиз найти ошибку в коде. Препод нашел и сказал исправить.
задача такая:
На посвящение в студенты собрались все первокурсники. Некоторые из них знают друг друга. Считается, что два незнакомых человека тоже друзья, если у них есть какой-нибудь общий друг. Группа студентов, которые больше ни с кем не знакомы, называется "тусовкой". Студенты из различных "тусовок" не имеют общих знакомых. Необходимо узнать, сколько всего существует "тусовок".
Формат входного файла:
В первой строке входного файла 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru