質問編集履歴

2

プログラムの修正

2023/04/26 16:00

投稿

midoriya
midoriya

スコア1

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
- } /* 1~3の手続きを1000回行うためのfor文 */
244
+ }
245
+ }
230
246
  ```
231
247
 
232
248
  ### 試したこと

1

発生している問題の変更

2023/04/25 16:20

投稿

midoriya
midoriya

スコア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:85:7: warning: '/*' within block comment [-Wcomment]
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
- Dijkstra1.c:11:1: note: to match this '{'
16
+ dist[j] < dist[i];
20
- {
21
- ^
17
+ ~~~~~~~~^~~~~~~~~
22
- 1 warning and 1 error generated.
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
  /* ランダムに送受信ノードを決定 */