回答編集履歴

2

VERSION 1.2

2023/01/16 03:17

投稿

退会済みユーザー
test CHANGED
@@ -14,15 +14,22 @@
14
14
  方法2
15
15
 
16
16
  ```Text_feat._ChatGPT
17
+ (意訳, 抜粋)
18
+
19
+ ChatGPT:
17
20
  ご提示のコードにおいて、while文の終了後にxの値が初期化されていないことが、バグの原因です。
18
21
  while文を抜けたら、x = 0としましょう。
19
-
20
22
  for(i = 0; s[i] != '\0'; ++i) {while(x <= n){buf[j++] = s[i]; x = x + 1;}}
21
23
 
22
24
  for(i = 0; s[i] != '\0'; ++i) {while(x <= n){buf[j++] = s[i]; x = x + 1;}x=0;}
23
25
  に変更する。
26
+
27
+ TheCubWorld: しかし、それでは、各文字がn+1回繰り返されます。
28
+
29
+ ChatGPT: ご指摘の通りです。while(x <= n)をwhile(x < n)とすると、このバグは修正できます。
30
+
24
31
  ```
25
32
 
26
33
  ```C
27
- for(i = 0; s[i] != '\0'; ++i) {while(x <= n){buf[j++] = s[i]; x = x + 1;}x=0;}
34
+ for(i = 0; s[i] != '\0'; ++i) {while(x < n){buf[j++] = s[i]; x = x + 1;}x=0;}
28
35
  ```

1

VERSION 1.1

2023/01/16 03:13

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,5 @@
1
+ 方法1
1
- ```Text
2
+ ```Instructions
2
3
  S := 与えられた文字列
3
4
  N := Sの長さ
4
5
  M := 繰り返し回数
@@ -7,3 +8,21 @@
7
8
  ```C
8
9
  for (i=0; i<N*M, i++) printf("%c", S[i/M]);
9
10
  ```
11
+
12
+ ---
13
+
14
+ 方法2
15
+
16
+ ```Text_feat._ChatGPT
17
+ ご提示のコードにおいて、while文の終了後にxの値が初期化されていないことが、バグの原因です。
18
+ while文を抜けたら、x = 0としましょう。
19
+
20
+ for(i = 0; s[i] != '\0'; ++i) {while(x <= n){buf[j++] = s[i]; x = x + 1;}}
21
+
22
+ for(i = 0; s[i] != '\0'; ++i) {while(x <= n){buf[j++] = s[i]; x = x + 1;}x=0;}
23
+ に変更する。
24
+ ```
25
+
26
+ ```C
27
+ for(i = 0; s[i] != '\0'; ++i) {while(x <= n){buf[j++] = s[i]; x = x + 1;}x=0;}
28
+ ```