回答編集履歴

9

文言変更

2020/01/16 10:06

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,6 +1,6 @@
1
1
  理解できるかな?
2
2
 
3
- 入力が空だったとき、wordの先頭より前の2文字を調べてしまうので、前に2バイトの余白が必要です。
3
+ 入力が空だったとき、wordの先頭より前の2文字を調べてしまうので、前に2文字分の余白が必要です。
4
4
 
5
5
 
6
6
 

8

不要行削除

2020/01/16 10:06

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -32,8 +32,6 @@
32
32
 
33
33
  char *tail = word + strlen(word) - 1;
34
34
 
35
- char *tail2 = tail - 1;
36
-
37
35
  if (strchr("sox", *tail) != NULL
38
36
 
39
37
  || strcmp(tail - 1, "sh") == 0

7

長いifを改行

2020/01/16 10:04

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -32,7 +32,13 @@
32
32
 
33
33
  char *tail = word + strlen(word) - 1;
34
34
 
35
+ char *tail2 = tail - 1;
36
+
37
+ if (strchr("sox", *tail) != NULL
38
+
39
+ || strcmp(tail - 1, "sh") == 0
40
+
35
- if (strchr("sox", *tail) != NULL || strcmp(tail - 1, "sh") == 0 || strcmp(tail - 1, "ch") == 0) {
41
+ || strcmp(tail - 1, "ch") == 0) {
36
42
 
37
43
  strcpy(tail + 1, "es");
38
44
 

6

説明追記

2020/01/16 10:01

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,4 +1,6 @@
1
1
  理解できるかな?
2
+
3
+ 入力が空だったとき、wordの先頭より前の2文字を調べてしまうので、前に2バイトの余白が必要です。
2
4
 
3
5
 
4
6
 

5

const word にする

2020/01/16 09:57

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  char buf[100] = " ";
16
16
 
17
- char *word = buf + 2;
17
+ char * const word = buf + 2;
18
18
 
19
19
  int n;
20
20
 

4

コード変更

2020/01/16 09:53

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -12,15 +12,17 @@
12
12
 
13
13
  int main(int argc, const char * argv[]) {
14
14
 
15
+ char buf[100] = " ";
16
+
17
+ char *word = buf + 2;
18
+
15
19
  int n;
16
20
 
17
21
  scanf("%d", &n);
18
22
 
19
- for (int i = 1; i <= n; i++){
23
+ for (int i = 0; i < n; i++){
20
24
 
21
- char word[100] = " ";
22
-
23
- if (scanf("%90s", word + 2) != 1) {
25
+ if (scanf("%90s", word) != 1) {
24
26
 
25
27
  break;
26
28
 
@@ -50,7 +52,7 @@
50
52
 
51
53
  }
52
54
 
53
- printf("%s\n", word + 2);
55
+ printf("%s\n", word);
54
56
 
55
57
  }
56
58
 

3

代入簡略化

2020/01/16 09:51

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  for (int i = 1; i <= n; i++){
20
20
 
21
- char word[100] = { " " };
21
+ char word[100] = " ";
22
22
 
23
23
  if (scanf("%90s", word + 2) != 1) {
24
24
 

2

bug fix

2020/01/16 09:46

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  char word[100] = { " " };
22
22
 
23
- if (scanf("%97s", word + 2) != 1) {
23
+ if (scanf("%90s", word + 2) != 1) {
24
24
 
25
25
  break;
26
26
 

1

bug fix

2020/01/16 09:44

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  char word[100] = { " " };
22
22
 
23
- if (scanf("%99s", word + 2) != 1) {
23
+ if (scanf("%97s", word + 2) != 1) {
24
24
 
25
25
  break;
26
26