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

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

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

Зацикливание - C++

15.12.2009, 14:48. Просмотров 919. Ответов 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
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# include "stdafx.h"
# include <stdio.h>
#include <time.h>
#include <fstream>
# define SI sizeof (int)                            //элемент структуры смежности графа 
using namespace std;
 
struct VER { int kol; int mv; int *adj; };           //число вершин
FILE *p,*f;
 
 int n, h, N; 
 struct VER *Vt; 
 
 int Mark[100];
 
 void vvod_graf();
 
 void proverka(int);                              //функция прохождения графа с заданной вершины
 
 void main ( void ) 
{ 
    setlocale(LC_ALL,"RUSSIAN");
 
    int i, j, s, k, flag, v, kol, u;  
    vvod_graf ( );             
    
    for ( i = 0; i < 100; i++) 
        Mark [i] = 0; 
    
    printf ("\n Задайте K "); 
    scanf ( "%d", &k );
 
    srand((unsigned)time(NULL));
    
    for(j=0;j<=k;j++)
    {   
 
        s=rand() % 25;
         
        proverka ( s );            // вывод результатов 
 
        f = fopen( "spisok.out", "w" );
 
        fprintf (f, "\n" ); 
        
        for ( i = 0; i < n; i++ ) 
        { 
            if (i != s && ! Mark [i] ) 
                fprintf (f, "%d ", Vt [ i ] . mv); 
        } 
        
        fprintf (f, "\n");
        fclose ( f ); 
    }
}
 
 
 
 void vvod_graf ( )
 { 
     int i, j, N, kol; 
     p = fopen( "spisok_Adj.in", "r" );           //ввод числа вершин графа 
     
     if (fscanf (p, "%d", &n ) != EOF) 
     {  
         h=n/2;
 
         Vt = new VER[n];              //выделение памяти основным элементам
         
         for ( i = 0; i < n; i++)
         { 
             fscanf (p, "%d", &Vt [i] . mv ); 
             fscanf (p, "%d", &Vt [i] . kol ); 
             kol = Vt [i].kol;  
             
             
             if (kol) 
             { 
                Vt [i] . adj = new int[kol];          //выделение памяти списку смежности
                 for ( j = 0; j < kol; j++ )
                 { 
                     fscanf (p, "%d", &N ); 
                     
                     Vt[i].adj[j] = N-1; 
                 } 
             } 
         } 
     }
 
 fclose ( p ); 
 } 
 
 
void proverka ( int u ) 
  { 
      int i, v, flag = 1;                       // вершина u помечается как обработанная вершина 
      int l=0;
      Mark [u] = 2; 
      
      while (flag)
      {  
          for (i = 0; i < Vt[u ] . kol; i++) 
          { 
              v = Vt [u ] . adj[i];  
              
              if (Mark[v] == 1) 
              {
                  Mark[v] = 2;
                  l++;
 
              }
              
              else if (! Mark [v] ) 
                  Mark [v] = 1;
          } 
          
 //просмотр списка меток и поиск вершин обнаруженных на предыдущем шаге 
          for (i = 0; i < n && Mark [i] != 1; i++) ; 
          
          if (i == n) 
              flag = 0; 
          
          else 
          {
              u = i; 
              Mark [u] = 2;
          }
          
          if (l>=h) 
              flag = 0;
      } 
 
        while(Mark[v]=2)
        {   
            for (u = 0; u < 25; u++)
            {
                for(i=0;i<Vt[u ] . kol; i++)
                {
                printf("%d ",Vt [u ] . adj[i]);
                }
            }
        };
  }
очень прошу помочь!мне это завтра сдать нужно,а я не понимаю в чём проблема!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 14:48     Зацикливание
Посмотрите здесь:

Зацикливание проверки - C++
Доброго времени суток! 1) Хотелось бы узнать почему не срабатывает проверка в цикле? 2) Можно ли обойтись без цикла и темболее уж без...

Зацикливание в программе - C++
Задание: Протабулировать функцию, использовав цикл с предусловием. Аргументы и результаты вывести на экран в виде таблицы (для значений...

Зацикливание Функции - C++
После подсчёта спрашивать : &quot;Повторить ? (y/n)&quot;, если &quot;y&quot; то в начала цикла с запросом сколько часов..если &quot;n&quot; то выход #include...

сделать зацикливание - C++
Всем привет, нужна помощь :).Шифр цезаря. Нужно сделать так, что бы например при сдвиге на 30, программа начинала сдвигать по новой, т.е....

Зацикливание класса - C++
int readmass(char* file) { FILE *mass =fopen(file,&quot;r&quot;); if( mass==NULL) { cout&lt;&lt;&quot;Не возможно открыть файл&quot;&lt;&lt;endl; ...

Вероятное зацикливание - C++
Приведет ли такой код к краху? class MyClass1 { ... MyClass2 * ptr2; } class MyClass2 {

Зацикливание в программе - C++
Здравствуйте! Помогите, пожалуйста. У меня в программе требует проверить, нечетное ли положительное число введено. И пока не введут...

Cin.get() зацикливание while() - C++
Вот такой вот код... cout &lt;&lt; &quot;Введите размер 1-й матрицы: &quot;; while (!(cin &gt;&gt; N1 &gt;&gt; M1)) { system(&quot;cls&quot;); cin.clear(); ...

Зацикливание оператора цикла for - C++
Коллеги, доброго времени суток! Нужна ваша помощь. Происходит зацикливание цикла for, присваиваю по определённому условию переменной...

Нужно исправить while (зацикливание) - C++
После while (!(cin &gt;&gt; a.age) || a.age &gt; 0 || a.age &lt; 150) идет зацикливание. Всю голову уже сломал, помогите исправить. Вот весь код: ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sayrus89
31 / 31 / 1
Регистрация: 26.10.2009
Сообщений: 98
15.12.2009, 15:18     Зацикливание #2
Пройдитесь отладчиком и выясните, где зацикливается. Либо прикрепите к сообщению сам файлик spisok_Adj.in, чтобы можно было проверить
КсенияСергеевна
0 / 0 / 0
Регистрация: 07.09.2009
Сообщений: 45
15.12.2009, 16:03  [ТС]     Зацикливание #3
25
1 2 2 6
2 3 1 3 7
3 3 2 4 8
4 3 3 5 9
5 2 4 10
6 3 1 7 11
7 4 2 6 8 12
8 4 3 7 9 13
9 4 4 8 10 14
10 3 5 9 15
11 3 6 12 16
12 4 7 11 13 17
13 4 8 12 14 18
14 4 9 13 15 19
15 3 10 14 20
16 3 11 17 21
17 4 12 16 18 22
18 4 13 17 19 23
19 4 14 18 20 24
20 3 15 19 25
21 2 16 22
22 3 17 21 23
23 3 18 22 24
24 3 19 23 25
25 2 20 24


это текст файла
Yandex
Объявления
15.12.2009, 16:03     Зацикливание
Ответ Создать тему
Опции темы

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