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

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

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

найти ошибку в решении - C++

26.12.2010, 22:05. Просмотров 222. Ответов 0
Метки нет (Все метки)

#include <stdio.h>
#include <mem.h>

#define max_num 20
#define max 28

int m[max_num + 1][max_num + 1] = {};
int yes = 0;

int n;
int cep[2 * max + 1] = {0};
int best[2 * max + 1];
int p, maxlen;

int read_data() {
int i, a, b;
FILE *f;

if((f = fopen("DM.TXT", "rt")) == NULL) {
fprintf(stderr, "Cannot open input file.\n");
return 1;
}

p = 1; maxlen = 0;
fscanf(f, "%d", &n);
for(i = 1; i <= n; ++i) {
fscanf(f, "%d %d", &a, &b);
m[a][b] = m[b][a] = 1;
}
fclose(f);
return 0;
}

void write_results() {

int i;
printf("%d\n", maxlen / 2);
if(maxlen > 1) {
i = 1;
while(i < maxlen - 1) {
printf(" <%d %d> :", best[i], best[i+1]);
i += 2;
}
printf(" <%d %d>", best[maxlen - 1], best[maxlen]);
}
printf("\n");
}

void s_cep() {

if(p - 1 > maxlen) {
memmove(&best[0], &cep[0], (p - 1)*sizeof(int));
maxlen = p - 1;
yes = (maxlen / 2 == n) ? 1 : 0;
}
}

int exist(int k) {
int i = 0;

while((i <= max_num) && (!m[k][i])) i += 1;
return (i <= max_num) ? 1 : 0;
}

void make_cep(int f) {

int s;
if(yes) return;

if(m[f][f]) {
m[f][f] = 0;
cep[p] = f; cep[p + 1] = f; p += 2;
if(exist(f)) make_cep(f); else s_cep();
p -= 2;
m[f][f] = 1;
}
else
for(s = 0; s <= max_num; ++s)
if(m[f][s]) {
m[f][s] = m[s][f] = 0;
cep[p] = f; cep[p + 1] = s; p += 2;
if(exist(s)) make_cep(s); else s_cep();
p -= 2;
m[f][s] = m[s][f] = 1;
}
}

int main() {
int i;

read_data();
for(i = 0; i <= max_num; ++i) make_cep(i);
write_results();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 22:05     найти ошибку в решении
Посмотрите здесь:

найти ошибку в решении задачи! - C++
Условие: Дано натуральное число n. Вычислить: 1 + 2 + 4 + 8 + … + 2n. не могу понять,как в цикле фо задать так,что бы в формуле...

Помогите найти ошибку в решении биквадратного уравнения - C++
Здравствуйте,написал код,проблема в том,если выполняется строка 31,то и всегда будет выполнятся строка под номером 39,как это исправить?...

Найти ошибку в решении задачи "Шифровка" (acmp) - C++
#include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; #include...

Найти среднее арифметическое в масиве. При решении использовать функции - C++
В общем задание такое: Дан масив A. Определить среднее арифметическое элементов масива. При решении использовать ф-ции. Все...

Найти ошибку - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; int main() { char str=&quot;kfghdfg.&quot;; ...

найти ошибку! - C++
вот код программы #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;algorithm&gt; ...

Найти ошибку - C++
Нужно, чтобы при вводе номера месяца выбивалось его название и кол-во дней. Но в 13й строке ошибка: #include &lt;iostream&gt; ...

Найти ошибку - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; #include&lt;locale&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;RUS&quot;); ...

Найти ошибку. - C++
задание: Шаг1. Выбрать начальный шаг sh=(b-a)/4. Положить x0=a. Вычислить F(x0). Шаг2. Положить x1=x0+sh. Вычислить F(x1). Шаг3....

Найти ошибку - C++
При запуске программа выдает окно с ошибкой. #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; struct Stach { int N; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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