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

質問編集履歴

2

初心者マークのつけ方がわかったので付けました。

2019/04/24 16:02

投稿

cherry_0515
cherry_0515

スコア13

title CHANGED
File without changes
body CHANGED
File without changes

1

少し内容をいじったのですが、いじる前のプログラムを誤って添付していました。

2019/04/24 16:02

投稿

cherry_0515
cherry_0515

スコア13

title CHANGED
File without changes
body CHANGED
@@ -56,18 +56,20 @@
56
56
  #include<string.h>
57
57
 
58
58
  int young(char *str,int x,int min,int k){
59
- /*x+1番目の文字とmin+1番目の文字を比較 若い方の位置を返す kは最初の文字からどれだけ離れたかの記憶*/
59
+ /*x+1番目の文字とmin+1番目の文字を比較 若い方の位置を返す kは最初の文字からどれだけ離れたかの記憶*/
60
60
  if(str[x]>str[min]){ /*minの方が若い*/
61
61
  printf("return min-k(%d)\n",min-k);
62
62
  return min-k; /*離れた分戻すためにkを引く*/
63
63
  }
64
64
  if(str[x]==str[min]){
65
65
  if(str[min+1]<'A' || (str[min+1]>'Z' && str[min+1]<'a') || str[min+1]>'z'){
66
- /*minの方が単語が短いからreturn min-k*/
66
+ /*minの方が単語が短いからreturn min-k*/
67
+ printf("return min-k(%d)\n",min-k);
67
- return min-k;
68
+ return min-k;
68
69
  }
69
70
  else if(str[x+1]<'A' || (str[x+1]>'Z' && str[x+1]<'a') || str[x+1]>'z'){
70
71
  /*xの方が単語が短いからreturn x-k*/
72
+ printf("return x-k(%d)\n",x-k);
71
73
  return x-k;
72
74
  }
73
75
  k++; /*次の文字へ行くから離れた分記憶*/
@@ -86,13 +88,12 @@
86
88
 
87
89
  for(i=0;i<count;i++){
88
90
  if(str[x[i]]<'A' || (str[x[i]]>'Z' && str[x[i]]<'a') || str[x[i]]>'z') continue;
89
- printf("min=%d\n",min);
91
+ printf("%d回目 youngに入れる前 min=%d\n",i+1,min);
90
92
  min=young(str,x[i],min,0); /*x[i]+1文字目からの単語とそれまでで一番若い単語の比較*/
91
- printf("min=%d\n",i,min);
93
+ printf("%d回目 youngに入れた後 min=%d\n\n",i+1,min);
92
94
  }
93
95
 
94
96
 
95
-
96
97
  ```
97
98
 
98
99
  ### 試したこと