質問編集履歴
2
プログラムの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -11,11 +11,15 @@
|
|
11
11
|
|
12
12
|
```
|
13
13
|
エラーメッセージが表示されることなく、ダイクストラの計算も実行されずにプログラムが終了してしまう。
|
14
|
+
|
14
15
|
gcc Dijkstra1.c
|
15
|
-
Dijkstra1.c:166:19: warning: relational comparison result unused [-Wunused-comparison]
|
16
|
+
^[[ADijkstra1.c:166:19: warning: relational comparison result unused [-Wunused-comparison]
|
16
17
|
dist[j] < dist[i];
|
17
18
|
~~~~~~~~^~~~~~~~~
|
18
19
|
1 warning generated.
|
20
|
+
% ./a.out
|
21
|
+
zsh: segmentation fault ./a.out
|
22
|
+
|
19
23
|
```
|
20
24
|
|
21
25
|
### 該当のソースコード
|
@@ -105,7 +109,7 @@
|
|
105
109
|
|
106
110
|
|
107
111
|
while(miss == 0){ /* 呼損が発生するまで繰り返す*/
|
108
|
-
/* 評価の場合、送受信ノードをランダムに決定 */
|
112
|
+
/* 評価の場合、送受信ノードをランダムに決定 */
|
109
113
|
if (FLAG == 1){
|
110
114
|
/* ランダムに送受信ノードを決定 */
|
111
115
|
|
@@ -151,6 +155,7 @@
|
|
151
155
|
|
152
156
|
|
153
157
|
/* 3. 送信ノードに接続されている全てのノードうち、最短の距離をもつノードを確定とする */
|
158
|
+
|
154
159
|
for(i=0; i<NODE_NUM; i++){
|
155
160
|
tmp_dist = MAX;
|
156
161
|
if(graph[src][i]==1 && dist[i]<tmp_dist){
|
@@ -181,12 +186,15 @@
|
|
181
186
|
|
182
187
|
|
183
188
|
/* 5. まだ確定していないノードのうち、送信ノードからの距離が最短のノードを確定とする*/
|
189
|
+
for(i=0;i<NODE_NUM;i++){
|
184
190
|
for(j=0;j<NODE_NUM;j++){
|
185
191
|
tmp_dist =MAX;
|
186
192
|
if(chk[j]==0 && dist[j]<tmp_dist){
|
193
|
+
dist[j] < dist[i];
|
187
194
|
tmp_dist = dist[j];
|
188
195
|
tmp_node = j;
|
189
196
|
chk[tmp_node] = 1;
|
197
|
+
}
|
190
198
|
|
191
199
|
}
|
192
200
|
}
|
@@ -224,9 +232,17 @@
|
|
224
232
|
/* ここまでがdijkstraのアルゴリズム */
|
225
233
|
/************************************/
|
226
234
|
|
235
|
+
/**********************************************************************/
|
236
|
+
/* この下にdijkstraで決定した経路を評価するためのプログラムを記述する */
|
237
|
+
/**********************************************************************/
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
227
242
|
|
228
243
|
} /* while(1) */
|
229
|
-
|
244
|
+
}
|
245
|
+
}
|
230
246
|
```
|
231
247
|
|
232
248
|
### 試したこと
|
1
発生している問題の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,16 +10,12 @@
|
|
10
10
|
### 発生している問題・エラーメッセージ
|
11
11
|
|
12
12
|
```
|
13
|
+
エラーメッセージが表示されることなく、ダイクストラの計算も実行されずにプログラムが終了してしまう。
|
14
|
+
gcc Dijkstra1.c
|
13
|
-
Dijkstra1.c:
|
15
|
+
Dijkstra1.c:166:19: warning: relational comparison result unused [-Wunused-comparison]
|
14
|
-
/* 評価の場合、送受信ノードをランダムに決定 */
|
15
|
-
^
|
16
|
-
Dijkstra1.c:220:59: error: expected '}'
|
17
|
-
} /* 1~3の手続きを1000回行うためのfor文 */
|
18
|
-
^
|
19
|
-
|
16
|
+
dist[j] < dist[i];
|
20
|
-
{
|
21
|
-
^
|
17
|
+
~~~~~~~~^~~~~~~~~
|
22
|
-
1 warning
|
18
|
+
1 warning generated.
|
23
19
|
```
|
24
20
|
|
25
21
|
### 該当のソースコード
|
@@ -108,7 +104,7 @@
|
|
108
104
|
|
109
105
|
|
110
106
|
|
111
|
-
while(miss == 0){ /* 呼損が発生するまで繰り返す
|
107
|
+
while(miss == 0){ /* 呼損が発生するまで繰り返す*/
|
112
108
|
/* 評価の場合、送受信ノードをランダムに決定 */
|
113
109
|
if (FLAG == 1){
|
114
110
|
/* ランダムに送受信ノードを決定 */
|