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

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

Войти
Регистрация
Восстановить пароль
 
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 265
#1

Где то в коде ошибка - C++

06.05.2012, 19:59. Просмотров 363. Ответов 7
Метки нет (Все метки)

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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
#include <iostream.h>
#include <conio.h>
#define TRUE 1
#define FALSE 0
#define XRY 8  //Количество вершин графа.
typedef int Boolean;
typedef struct zveno *svqz;
typedef struct zveno
{
  int Key;  // Вершина графа.
  svqz Up;  // Указатель на смежную вершину.
  svqz Sled;// Указатель на следующую смежную вершину.
};
 
 
class Spisok
{
  private:
     svqz Beg[XRY+1]; //Массив указателей на вершины.
     void Add_Ver (int);
     int Find (int, int, svqz *);
     void Add_duga (int, int);
     void Make (int, int);
     void Delinenok (int, int);
     void Del_Duga (int, int);
     void Del_Ver (int);
     int Find_Color (int, int, svqz *);
  public:
     Spisok();
     void Init_Graph ();
     void Make_Graph ();
     void Print_Graph ();
     void Color ();
     void Print_Color ();
};
 
void main ()
{
  Spisok A;
 
  //Инициализация графа.
  A.Init_Graph ();
  //Построение графа.
  A.Make_Graph ();
  //Вывод графа.
  A.Print_Graph ();
  getch();
  //Последовательная раскраска графа, представленного
  //модифицированными списками смежности.
  A.Color ();
  A.Print_Color ();
  getch();
}
 
Spisok::Spisok()
{
  for ( int i=0; i<=XRY;Beg[i++] = NULL );
}
 
void Spisok::Add_Ver (int x)
//Функция создания вершины x.
{
  svqz Ukaz = new (zveno);
 
  Ukaz->Sled = NULL;
  Beg[x] = Ukaz;
}
 
void Spisok::Init_Graph ()
//Функция инициализации модифицированных списков смежности.
{
  for (int i=1;i<=XRY;i++) Add_Ver (i);
}
 
int Spisok::Find (int x, int y, svqz *UkZv)
//Функция проверки смежности вершин y и x. Функция возвращает
//TRUE, если  вершина x смежна с вершиной y. Указатель *UkZv,
//возвращает указатель на место y в списке  смежности x. Если
//вершина x не смежна с вершиной y, то UkZv есть NULL.
{
  svqz Ukaz;
 
  Ukaz = Beg[x]->Sled;
  while  (Ukaz != NULL && Ukaz->Key != y)
     Ukaz = Ukaz->Sled;
  *UkZv = Ukaz;
  return  ( Ukaz != NULL );
}
 
void Spisok::Add_duga (int x, int y)
//Функция создания дуги (x,y).
{
  svqz Ukaz = new (zveno);
 
   Ukaz->Sled = Beg[x]->Sled; Ukaz->Key = y;
   Beg[x]->Sled = Ukaz;
}
 
void Spisok::Make (int x, int y)
//Функция создания ребра {x,y}.
{
  svqz Ukaz;
 
  if  ( !Find(x,y,&Ukaz) )
  {
     Add_duga (x,y);
     if ( x != y ) Add_duga (y,x);
     Beg[x]->Sled->Up = Beg[y];
     Beg[y]->Sled->Up = Beg[x];
  }
}
 
void Spisok::Make_Graph ()
//Функция построения модифицированных списков смежности.
{
  int f;
 
  for (int i=1;i<=XRY;i++)
  {
    cout << "Введите вершины, смежные с " << i << "-й вершиной: ";
    cin >> f;
    while (f!=0)
    {
      Make (i,f);
      cout << " ";
      cin >> f;
    }
    cout << endl;
  }
}
 
void Spisok::Delinenok (int x, int y)
//Функция удаления дуги (x,y).
{
  svqz Ukaz;
  svqz Ukazlenok;
 
  Ukazlenok = Beg[x]; Ukaz = Beg[x]->Sled;
  while (Ukaz != NULL && Ukaz->Key != y)
  {  Ukazlenok = Ukaz; Ukaz = Ukaz->Sled; }
  if ( Ukaz != NULL )
  {
     Ukazlenok->Sled = Ukaz->Sled;
     delete Ukaz;
  }
}
 
void Spisok::Del_Duga (int x, int y)
//Функция удаления ребра {x,y}.
{
  Delinenok (x,y); Delinenok (y,x);
}
 
void Spisok::Del_Ver (int x)
//Функция удаления вершины x.
{
  svqz Ukaz;
  svqz Ukazlenok;
 
  for (int i=1;i<=XRY;i++) Delinenok (i,x);
  Ukaz = Beg[x]; Beg[x] = NULL;
  while ( Ukaz != NULL )
  {
     Ukazlenok = Ukaz->Sled;
     delete Ukaz; Ukaz = Ukazlenok;
  }
}
 
void Spisok::Print_Graph ()
//Функция вывода содеpжимого модифицированных
//списков смежности.
{
  svqz UkZv;
 
  for (int i=1;i<=XRY;i++)
  {
    if ( Beg[i] != NULL )
    {
      UkZv = Beg[i]->Sled;
      cout << i << " - ";
      while ( UkZv != NULL )
      {
        cout << " " << UkZv->Key;
        UkZv = UkZv->Sled;
      }
    }
    cout << endl;
  }
}
 
int Spisok::Find_Color (int x, int c, svqz *UkZv)
//Функция  выявления возможности раскраски вершины  x цветом c.*
//Функция  возвращает TRUE, если вершину  x  можно  раскрасить.*
//Указатель *UkZv, возвращает указатель на вершину, смежную с x*
//и раскрашенную цветом c. Если вершину x можно раскрасить, то*
//*UkZv есть NULL.
{
   int i = 1;
   
   while (!(Find(x,i,&(*UkZv)) &&
          Beg[i]->Key==c)   && 
          i != x) i++;
   return (i==x);
}
 
void Spisok::Color ()
//Функция последовательной раскраски графа, заданного
//модифицированными списками смежности Beg.
{
  int i = 1;
  int c = 1;
  svqz UkZv;
   
  while  (Beg[i] == NULL && i<=XRY) i++;
  if ( i != XRY )
  {
    Beg[i]->Key = c;
    i++;
    while  (i<=XRY)  
     if ( Beg[i] != NULL )
     {
       c = 1;
       while  (!Find_Color(i,c,&UkZv)) c++;
       Beg[i]->Key = c; i++;
     }
     else  i++;
  }
  else  cout << "Граф отсутствует!";
}
 
void Spisok::Print_Color ()
//Функция вывода раскраски графа, заданного
//модифицированными списками смежности Beg.
{                 
  for (int i=1;i<=XRY;i++)
    if ( Beg[i] != NULL )
       cout << " Color " << i << " - " << Beg[i]->Key << endl;return ;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 19:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Где то в коде ошибка (C++):

Где ошибка в коде? - C++
Задание такое: Дан одномерный массив с большим количеством нулей. Заменить в нем каждую группу из подряд идущих нулей на два элемента:...

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

Где ошибка в коде? - C++
Написал код , в нем вводятся 15 чисел , числа входящие в диапозон от 0 до 10 возводит в квадрат , и подсчитывает кол-во отрицательных чисел...

Где ошибка в коде? - C++
Доброго времени суток! Я недавно начал учиться писать программы на С++, сайчас возникла такая проблема, по условиям задания надо так,...

где ошибка в коде - C++
// Урок 9. C++ Игра Угадай число.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include...

Где ошибка в коде ? - C++
задача Треугольный ряд чисел : первое число 1 второе на 2 больше чем первое , 3е на 3 больше чем второе итд.......

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
06.05.2012, 22:33 #2
Опишите, пожалуйста, ошибку. Она возникает при компиляции или при запуске? Или это ошибка в возвращаемом результате?
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 265
06.05.2012, 22:37  [ТС] #3
при компиляции косяк какой то
cyberdiem
74 / 25 / 1
Регистрация: 15.02.2012
Сообщений: 97
06.05.2012, 22:39 #4
текст ошибки который компилятор выдает напиши
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 265
06.05.2012, 22:43  [ТС] #5
C:\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31, from C:\din116_3.cpp In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31, from C:\din116_3.cpp

такое вот мне выдаёт, хотя вроде сделал так как препод сказал)
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
06.05.2012, 22:44 #6
Похоже на неполный текст ошибки. Точно больше ничего?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
06.05.2012, 22:45 #7
Не искал, где ошибка, но
Цитата Сообщение от Rikk Посмотреть сообщение
typedef int Boolean;
typedef struct zveno *svqz;
typedef struct zveno
{
Ты уверен, что знаешь, что такое typedef?????
Это первая ошибка.
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 265
06.05.2012, 22:53  [ТС] #8
Цитата Сообщение от cyberdiem Посмотреть сообщение
текст ошибки который компилятор выдает напиши
агга))
всё всем спасибо разобрался! заработало еле как
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 22:53
Привет! Вот еще темы с ответами:

Где ошибка в коде - C++
по запросу строки программа должна выдавать строку с увеличением на 2 .Например запрашиваю 1 строку он выдает 3 строку { ...

Ошибка где-то в коде - C++
Не могу найти ошибку в коде. Выдает: недопустимо , правый оператор имеет тип int. #include &quot;stdafx.h&quot; #include&lt;iostream&gt; using...

Не пойму где ошибка в коде - C++
Задача: (В задаче можно использовать только такие библиотеки и решить надо только через условные операторы.) Все проходит и решение...

Где ошибка в програмном коде - C++
Вычислить Z=(x+y)/(k*n),где x и k- сумма и количество положительных элементов массива А(40), где y и n - сумма и количество отрицательных...


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

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

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