teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

スペースを削除

2019/10/03 11:54

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -6,17 +6,17 @@
6
6
  #include <stdlib.h>
7
7
  #include <string.h>
8
8
  void print(char** t,int n,char **o){
9
- int i, j;
9
+ int i,j;
10
10
  for(j=0;j<3;j++){
11
11
  printf("%s:",o[j]);
12
- for(i=n-1;i>=0;i--) if(t[i] == o[j]) printf(" %d",i+1);
12
+ for(i=n-1;i>=0;i--) if(t[i]==o[j]) printf(" %d",i+1);
13
13
  printf("\n");
14
14
  }
15
15
  printf("-----\n");
16
16
  }
17
17
  void move(int r,char *x,char *y,char *z,char **t,int n,char **o){
18
18
  if(r>=2) move(r-1,x,z,y,t,n,o);
19
- t[r-1] = z; //r番をzに移動
19
+ t[r-1]=z; //r番をzに移動
20
20
  print(t,n,o);
21
21
  if(r>=2) move(r-1,y,x,z,t,n,o);
22
22
  }

1

不要なパラメータを削除

2019/10/03 11:54

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  #include <stdio.h>
6
6
  #include <stdlib.h>
7
7
  #include <string.h>
8
- void print(char *x,char *y,char *z,char** t,int n,char **o){
8
+ void print(char** t,int n,char **o){
9
9
  int i, j;
10
10
  for(j=0;j<3;j++){
11
11
  printf("%s:",o[j]);
@@ -17,7 +17,7 @@
17
17
  void move(int r,char *x,char *y,char *z,char **t,int n,char **o){
18
18
  if(r>=2) move(r-1,x,z,y,t,n,o);
19
19
  t[r-1] = z; //r番をzに移動
20
- print(x,y,z,t,n,o);
20
+ print(t,n,o);
21
21
  if(r>=2) move(r-1,y,x,z,t,n,o);
22
22
  }
23
23
  void hanoi(int n,char *x,char *y,char *z){
@@ -25,7 +25,7 @@
25
25
  char *o[3]; o[0]=x; o[1]=y; o[2]=z; //表示用
26
26
  char **t=(char **)malloc(sizeof(char*)*n); //各円盤の位置
27
27
  for(i=0;i<n;i++) t[i]=x;
28
- print(x,y,z,t,n,o);
28
+ print(t,n,o);
29
29
  move(n,x,y,z,t,n,o);
30
30
  free(t);
31
31
  }