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

Задача коммивояжера - выход за пределы массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу http://www.cyberforum.ru/cpp-beginners/thread1149952.html
Здравствуйте, помогите сделать задание, ни как не могу в него вникнуть: Компоненты файла f – целые (отличные от нуля) числа: х, y1, ... yn. Вывести на экран два последовательных члена этой последовательности, среднее арифметическое которых ближе всего к х. Выполнить задания для текстового и бинарного файлов.
C++ Заполнить двумерный массив 7x7 Заполнить двумерный массив 7x7 следующим видом: Добавлено через 15 минут Спасибо, уже сделал, кому нужно, вот) //---------------------------------TwIx----------------------------------------- #include <iostream> #include <math.h> #include <stdlib.h> #include <vcl.h> http://www.cyberforum.ru/cpp-beginners/thread1149931.html
Написать простую булевую функцию C++
написать реализацию самой простой функции вычисления нелинейности одной булевой функции. Для отладки этой функции надо будет писать программу, в которой задавать какую-нибудь конкретную функцию, например, линейную или произведение переменных, а также выводить результат в файл для проверки.
C++ Написать функцию, которая определяет, является ли введенный символ буквой
5.9 Составить функцию, которая принимает символ. Если символ на входе - не буква, функция просто возвращает его же. В противном случае, если символ на входе -буква, функция возвращает соответствующую строчную (малую) букву.
C++ Найти сумму всех элементов в заштрихованных областях, включая диагональ http://www.cyberforum.ru/cpp-beginners/thread1149916.html
найти сумму всех элементов в заштрихованных областях, включая диагональ
C++ Оставить первую половину текста без изменений, а вторую записать в обратном порядке Дан текст: оставить первую половину текста без изменений , а вторую записать в обратном порядке подробнее

Показать сообщение отдельно
mirozdan
1 / 1 / 0
Регистрация: 15.07.2013
Сообщений: 19

Задача коммивояжера - выход за пределы массива - C++

16.04.2014, 11:49. Просмотров 598. Ответов 4
Метки (Все метки)

Бьет ошибку! Я так понимаю где-то выход за пределы массива! Народ гляньте кто, а то я уже ничего не вижу! Может свежий взгляд увидит как исправить
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
#include <vcl.h>
 
#include <tchar.h>
 
#include <stdio.h>
 
#include <conio.h>
 
//
 
void main()
 
{
 
int c2,c3,i,k,j,n,e,q,v,m,z,x,min,a,min2,h=0,c=0;
 
printf("Koli4estvo gorodov : ");scanf("%i",&n); //???? ?????????? ???????
 
int *t=new int[n];
 
int *t2=new int[n];
 
int **kg=new int*[n];
 
for(i=0;i<n;i++)
 
kg[i]=new int[n];
 
int **kg1=new int*[n];
 
for(i=0;i<n;i++)
 
kg1[i]=new int[n];
 
for(i=0;i<n;i++)
 
for(j=0;j<n;j++)
 
kg[i][j]=0;
 
for(i=0;i<n;i++) //?????????? ?????????? ????? ????????
 
for(j=i+1;j<n;j++)
 
{
 
printf("vedite racto9nnie %i do %i: ",i+1,j+1);
 
scanf("%i",&kg[i][j]);
 
kg1[i][j]=kg[i][j];
 
}
 
clrscr();
 
printf(" ");
 
for(i=0;i<n;i++)
 
printf("%3i",i+1);
 
printf("\n\n\n\n");
 
for(i=0;i<n;i++) // ?????????? ??????? ??????? ???????????
 
{
 
printf("%2i ",i+1);
 
for(j=0;j<n;j++)
 
{
 
kg[j][i]=kg[i][j];
 
kg1[j][i]=kg[i][j];
 
printf("%3i",kg[i][j]);
 
}
 
printf("\n\n");
 
}
 
printf("Vvedite na4al'nuy to4ky : ");scanf("%i",&k); //???? ? ?????? ?????? ???????? ????
 
k--;
 
e=k;x=k;
 
q=1;c2=0;
 
v=0;z=2;
 
t[0]=k;
 
do //????? ???????????? ???? ????? ????????
 
{
 
min=99999;
 
for(j=x+1;j<n;j++)
 
if(min>=kg[x][j] && kg1[x][j]!=-1)
 
{
 
min=kg[x][j];
 
m=j;
 
}
 
for(j=0;j<x;j++)
 
if(min>kg[j][x] && kg1[j][x]!=-1)
 
{
 
min=kg[j][x];
 
m=j;
 
}
 
t2[q]=x;
 
t[q]=m;
 
for(j=x+1;j<n;j++)
 
kg1[x][j]=-1;
 
for(j=0;j<x;j++)
 
kg1[j][x]=-1;
 
x=m;
 
z=0;
 
for(i=0;i<n && z!=1;i++)
 
for(j=i+1;j<n;j++)
 
if(kg1[i][j]==-1)
 
v=1;
 
else
 
{v=3;z=1;break;}
 
q++;
 
}
 
while(v!=1);
 
t2[q]=x;t[q]=k;q++;v=q;z=0;q=0;c=0;c2=0;e=0;
 
do // ???????? ??????? ????????? ????????
 
{
 
if(q!=0)
 
{ c=c+kg[t2[e]][t[q]];
 
c2=c-kg[t2[e-1]][t[q-1]]-kg[t2[e]][t[q]]+kg[t[q]][t[q-1]]+kg[t2[e-1]][t[q]];}
 
if(c>c2 && q!=0 && z<q)
 
{
 
z=t2[e];
 
t2[e]=t2[e-1];
 
t2[e-1]=z;
 
z=t[q-1];
 
t[q-1]=t[q-2];
 
t[q-2]=z;
 
z=q;
 
q=-1;e=-1;c=0;c2=0;
 
}
 
q++;
 
e++;
 
}
 
while(v!=q);
 
printf("\n\nput : %i",t[0]+1); //????? ????
 
for(i=1;i<q;i++)
 
printf("-%i",t[i]+1);
 
printf("\n\n");
 
printf("dlina puti : %i",c);//????? ?????? ????
 
getch();
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru