質問編集履歴
3
解決しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -127,11 +127,10 @@
|
|
127
127
|
if(r[d[count]][d[count+1]]==0) a[d[count]][d[count+1]]=stop;
|
128
128
|
printf("r[%d][%d]:%d\n",d[count],d[count+1],r[d[count]][d[count+1]]);
|
129
129
|
}
|
130
|
-
hantei(s,t,N);
|
130
|
+
hantei(s,t,N);//1回目はだいだいこの部分にたどり着く
|
131
|
-
return 1;
|
131
|
+
return 1;//このreturnが必要
|
132
132
|
}
|
133
133
|
```
|
134
134
|
###追記
|
135
135
|
回答ありがとうございました。
|
136
|
-
最初にhanteiを呼び出したときに、return文を下につけておかなかったことで、判定終了して再帰関数で戻ったときに、hantei関数が終了しなかったのが原因だったようです。
|
136
|
+
最初にhanteiを呼び出したときに、return文を下につけておかなかったことで、判定終了して再帰関数で戻ったときに、hantei関数が終了しなかったのが原因だったようです。
|
137
|
-
ベストアンサーは一番わかりやすかった人とさせていただきます。
|
2
解決しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -130,4 +130,8 @@
|
|
130
130
|
hantei(s,t,N);
|
131
131
|
return 1;
|
132
132
|
}
|
133
|
-
```
|
133
|
+
```
|
134
|
+
###追記
|
135
|
+
回答ありがとうございました。
|
136
|
+
最初にhanteiを呼び出したときに、return文を下につけておかなかったことで、判定終了して再帰関数で戻ったときに、hantei関数が終了しなかったのが原因だったようです。
|
137
|
+
ベストアンサーは一番わかりやすかった人とさせていただきます。
|
1
プログラムを修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,35 +17,34 @@
|
|
17
17
|
#define nonvisit 0
|
18
18
|
#define revisit 2
|
19
19
|
#define stop 2
|
20
|
-
#define M 5
|
21
|
-
#define
|
20
|
+
#define M 100
|
22
21
|
|
23
22
|
int i,j,k,min,sum;
|
24
23
|
clock_t start_clock, end_clock;
|
25
|
-
int a[
|
24
|
+
int a[M+1][M+1], r[M+1][M+1], d[M+1], v[M+1];
|
26
25
|
|
27
|
-
void ransuu();
|
26
|
+
void ransuu(int);
|
28
27
|
|
29
|
-
int hantei(int, int);
|
28
|
+
int hantei(int, int, int);
|
30
29
|
|
31
30
|
int main(void){
|
32
31
|
srand((unsigned int)time(NULL));
|
33
|
-
int sum2,b[M];
|
32
|
+
int sum2,b[M+1];
|
34
33
|
for(int n=1;n<=M;n++){
|
35
34
|
start_clock=0,end_clock=0;
|
36
35
|
printf("%d回目\n",n);
|
37
|
-
ransuu();
|
36
|
+
ransuu(n);
|
38
37
|
start_clock=clock();
|
39
|
-
hantei(1,n);
|
38
|
+
hantei(1,n,n);
|
40
39
|
end_clock=clock();
|
41
|
-
b[
|
40
|
+
b[n]=(double)(end_clock-start_clock)/CLOCKS_PER_SEC;
|
42
|
-
sum2+=b[
|
41
|
+
sum2+=b[n];
|
43
42
|
}
|
44
43
|
printf("平均時間計算量:%f\n",sum2/M);
|
45
44
|
return 0;
|
46
45
|
}
|
47
46
|
|
48
|
-
void ransuu(
|
47
|
+
void ransuu(int N){
|
49
48
|
printf("Adjacency Matrix:\n");
|
50
49
|
|
51
50
|
for(i = 1; i <= N; i++){
|
@@ -71,7 +70,7 @@
|
|
71
70
|
}
|
72
71
|
}
|
73
72
|
|
74
|
-
int hantei(int s,int t){
|
73
|
+
int hantei(int s,int t,int N){
|
75
74
|
int current, count, p=0;
|
76
75
|
current=s; count=1; min=N+1;
|
77
76
|
|
@@ -128,7 +127,7 @@
|
|
128
127
|
if(r[d[count]][d[count+1]]==0) a[d[count]][d[count+1]]=stop;
|
129
128
|
printf("r[%d][%d]:%d\n",d[count],d[count+1],r[d[count]][d[count+1]]);
|
130
129
|
}
|
131
|
-
hantei(s,t);
|
130
|
+
hantei(s,t,N);
|
132
131
|
return 1;
|
133
132
|
}
|
134
133
|
```
|