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

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

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

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

15.12.2009, 14:48. Просмотров 927. Ответов 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]);
                }
            }
        };
  }
очень прошу помочь!мне это завтра сдать нужно,а я не понимаю в чём проблема!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 14:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зацикливание (C++):

зацикливание - C++
Не выдает нужного результата происходит зацыкливание // wer.cpp : Defines the entry point for the console application. // ...

Зацикливание - C++
Вобщем, проверял уже 100 раз. Думаю причина в моем неумении работать с файлами. Почти все переменные, объявленные в этой процедуре,...

Зацикливание - C++
Всем доброго времени суток. Написал прогу по определению кратности второго числа относительно первого. // Кратность второго числа по...

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

Зацикливание - C++
Помогите разобраться while (point &gt;= min &amp;&amp; point &lt;= max || prodal &gt;= min &amp;&amp; prodal &lt;= max) { cin &gt;&gt; point; sobestoimostb = point...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sayrus89
31 / 31 / 1
Регистрация: 26.10.2009
Сообщений: 98
15.12.2009, 15:18 #2
Пройдитесь отладчиком и выясните, где зацикливается. Либо прикрепите к сообщению сам файлик spisok_Adj.in, чтобы можно было проверить
1
КсенияСергеевна
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


это текст файла
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2009, 16:03
Привет! Вот еще темы с ответами:

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

Scanf зацикливание - C++
Почему зацикливается при вводе символа? int a; while (scanf_s(&quot;%d&quot;, &amp;a) != EOF) { ... }

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

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


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

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

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