質問編集履歴

3

解決しました

2021/01/28 01:34

投稿

katkey
katkey

スコア15

test CHANGED
File without changes
test CHANGED
@@ -256,9 +256,9 @@
256
256
 
257
257
  }
258
258
 
259
- hantei(s,t,N);
259
+ hantei(s,t,N);//1回目はだいだいこの部分にたどり着く
260
-
260
+
261
- return 1;
261
+ return 1;//このreturnが必要
262
262
 
263
263
  }
264
264
 
@@ -269,5 +269,3 @@
269
269
  回答ありがとうございました。
270
270
 
271
271
  最初にhanteiを呼び出したときに、return文を下につけておかなかったことで、判定終了して再帰関数で戻ったときに、hantei関数が終了しなかったのが原因だったようです。
272
-
273
- ベストアンサーは一番わかりやすかった人とさせていただきます。

2

解決しました

2021/01/28 01:34

投稿

katkey
katkey

スコア15

test CHANGED
File without changes
test CHANGED
@@ -263,3 +263,11 @@
263
263
  }
264
264
 
265
265
  ```
266
+
267
+ ###追記
268
+
269
+ 回答ありがとうございました。
270
+
271
+ 最初にhanteiを呼び出したときに、return文を下につけておかなかったことで、判定終了して再帰関数で戻ったときに、hantei関数が終了しなかったのが原因だったようです。
272
+
273
+ ベストアンサーは一番わかりやすかった人とさせていただきます。

1

プログラムを修正しました。

2021/01/28 01:31

投稿

katkey
katkey

スコア15

test CHANGED
File without changes
test CHANGED
@@ -36,9 +36,7 @@
36
36
 
37
37
  #define stop 2
38
38
 
39
- #define M 5
40
-
41
- #define N 10
39
+ #define M 100
42
40
 
43
41
 
44
42
 
@@ -46,15 +44,15 @@
46
44
 
47
45
  clock_t start_clock, end_clock;
48
46
 
49
- int a[N+1][N+1], r[N+1][N+1], d[N+1], v[N+1], f[N+1];
47
+ int a[M+1][M+1], r[M+1][M+1], d[M+1], v[M+1];
50
-
51
-
52
-
48
+
49
+
50
+
53
- void ransuu();
51
+ void ransuu(int);
54
-
55
-
56
-
52
+
53
+
54
+
57
- int hantei(int, int);
55
+ int hantei(int, int, int);
58
56
 
59
57
 
60
58
 
@@ -62,7 +60,7 @@
62
60
 
63
61
  srand((unsigned int)time(NULL));
64
62
 
65
- int sum2,b[M];
63
+ int sum2,b[M+1];
66
64
 
67
65
  for(int n=1;n<=M;n++){
68
66
 
@@ -70,17 +68,17 @@
70
68
 
71
69
  printf("%d回目\n",n);
72
70
 
73
- ransuu();
71
+ ransuu(n);
74
72
 
75
73
  start_clock=clock();
76
74
 
77
- hantei(1,n);
75
+ hantei(1,n,n);
78
76
 
79
77
  end_clock=clock();
80
78
 
81
- b[N]=(double)(end_clock-start_clock)/CLOCKS_PER_SEC;
79
+ b[n]=(double)(end_clock-start_clock)/CLOCKS_PER_SEC;
82
-
80
+
83
- sum2+=b[N];
81
+ sum2+=b[n];
84
82
 
85
83
  }
86
84
 
@@ -92,7 +90,7 @@
92
90
 
93
91
 
94
92
 
95
- void ransuu(void){
93
+ void ransuu(int N){
96
94
 
97
95
  printf("Adjacency Matrix:\n");
98
96
 
@@ -144,7 +142,7 @@
144
142
 
145
143
 
146
144
 
147
- int hantei(int s,int t){
145
+ int hantei(int s,int t,int N){
148
146
 
149
147
  int current, count, p=0;
150
148
 
@@ -258,7 +256,7 @@
258
256
 
259
257
  }
260
258
 
261
- hantei(s,t);
259
+ hantei(s,t,N);
262
260
 
263
261
  return 1;
264
262