質問編集履歴

2

修正しました。

2020/06/17 18:04

投稿

xyjs
xyjs

スコア13

test CHANGED
File without changes
test CHANGED
@@ -32,59 +32,225 @@
32
32
 
33
33
  puts "{yyyy-mm-dd}"
34
34
 
35
- input = gets.chomp.to_i
35
+ input = gets.chomp
36
36
 
37
37
  yyyy, mm, dd = input.split("-").map(&:to_i)
38
38
 
39
39
 
40
40
 
41
- def judge(month, day)
42
-
43
- names = ["山羊座", "水瓶座", "魚座", "牡羊座",
44
-
45
- "牡牛座", "双子座", "蟹座", "獅子", "乙女座",
46
-
47
- "天秤座", "蠍座", "射手座"]
48
-
49
-
50
-
51
- day1 = [19, 18, 20, 19, 20,
52
-
53
- 21, 22, 22, 22, 23, 22, 21]
54
-
55
-
56
-
57
- day2 = [31, 29, 31, 30, 31,
58
-
59
- 30, 31, 31, 30, 31, 30, 31]
60
-
61
-
62
-
63
- for count in 0..11
64
-
65
- if month == count + 1
66
-
67
- if day <= day1[count]
68
-
69
- name = names[count]
70
-
71
- return name
72
-
73
- elsif day <= day2[count]
74
-
75
- name = names[(count + 1) % names.length]
76
-
77
- return name
78
-
79
- end
80
-
81
- end
82
-
83
- end
84
-
85
- ju = judge(mm, dd)
86
-
87
- print ju
41
+ if mm == 3
42
+
43
+ if 21 <= dd && dd <= 31
44
+
45
+ puts "あなたの星は牡羊です!"
46
+
47
+ elsif 1 <= dd && dd <= 20
48
+
49
+ puts "あなたの星座は魚座です!"
50
+
51
+ else
52
+
53
+ puts ""
54
+
55
+ end
56
+
57
+ end
58
+
59
+ if mm == 4
60
+
61
+ if 1 <= dd && dd <= 19
62
+
63
+ puts "あなたの星座は牡羊座です!"
64
+
65
+ elsif 20 <= dd && dd <= 30
66
+
67
+ puts "あなたの星座は牡牛座です!"
68
+
69
+ else
70
+
71
+ puts ""
72
+
73
+ end
74
+
75
+ end
76
+
77
+ if mm == 5
78
+
79
+ if 1 <= dd && dd <= 20
80
+
81
+ puts "あなたの星座は牡牛座です!"
82
+
83
+ elsif 21 <= dd && dd <= 31
84
+
85
+ puts "あなたの星座は双子座です!"
86
+
87
+ else
88
+
89
+ puts ""
90
+
91
+ end
92
+
93
+ end
94
+
95
+ if mm == 6
96
+
97
+ if 1 <= dd && dd <= 21
98
+
99
+ puts "あなたの星座は双子座です!"
100
+
101
+ elsif 22 <= dd && dd <= 30
102
+
103
+ puts "あなたの星座はかに座です!"
104
+
105
+ else
106
+
107
+ puts ""
108
+
109
+ end
110
+
111
+ end
112
+
113
+ if mm == 7
114
+
115
+ if 1 <= dd && dd <= 22
116
+
117
+ puts "あなたの星座はかに座です!"
118
+
119
+ elsif 23 <= dd && dd <= 31
120
+
121
+ puts "あなたの星座は獅子座です!"
122
+
123
+ else
124
+
125
+ puts ""
126
+
127
+ end
128
+
129
+ end
130
+
131
+ if mm == 8
132
+
133
+ if 1 <= dd && dd <= 22
134
+
135
+ puts "あなたの星座は獅子座です!"
136
+
137
+ elsif 23 <= dd && dd <= 31
138
+
139
+ puts "あなたの星座は乙女座です!"
140
+
141
+ else
142
+
143
+ puts ""
144
+
145
+ end
146
+
147
+ end
148
+
149
+ if mm == 9
150
+
151
+ if 1 <= dd && dd <= 22
152
+
153
+ puts "あなたの星座は乙女座です!"
154
+
155
+ elsif 23 <= dd && dd <= 30
156
+
157
+ puts "あなたの星座は天秤座です!"
158
+
159
+ else
160
+
161
+ puts ""
162
+
163
+ end
164
+
165
+ end
166
+
167
+ if mm == 10
168
+
169
+ if 1 <= dd && dd <= 23
170
+
171
+ puts "あなたの星座は天秤座です!"
172
+
173
+ elsif 24 <= dd && dd <= 31
174
+
175
+ puts "あなたの星座は蠍座です!"
176
+
177
+ else
178
+
179
+ puts ""
180
+
181
+ end
182
+
183
+ end
184
+
185
+ if mm == 11
186
+
187
+ if 1 <= dd && dd <= 22
188
+
189
+ puts "あなたの星座は蠍座です!"
190
+
191
+ elsif 23 <= dd && dd <= 30
192
+
193
+ puts "あなたの星座は射手座です!"
194
+
195
+ else
196
+
197
+ puts ""
198
+
199
+ end
200
+
201
+ end
202
+
203
+ if mm == 12
204
+
205
+ if 1 <= dd && dd <= 21
206
+
207
+ puts "あなたの星座は射手座です!"
208
+
209
+ elsif 22 <= dd && dd <= 31
210
+
211
+ puts "あなたの星座は山羊座です!"
212
+
213
+ else
214
+
215
+ puts ""
216
+
217
+ end
218
+
219
+ end
220
+
221
+ if mm == 1
222
+
223
+ if 1 <= dd && dd <= 19
224
+
225
+ puts "あなたの星座は山羊座です!"
226
+
227
+ elsif 20 <= dd && dd <= 31
228
+
229
+ puts "あなたの星座は水瓶座です!"
230
+
231
+ else
232
+
233
+ puts ""
234
+
235
+ end
236
+
237
+ end
238
+
239
+ if mm == 2
240
+
241
+ if 1 <= dd && dd <= 18
242
+
243
+ puts "あなたの星座は水瓶座です!"
244
+
245
+ elsif 19 <= dd && dd <= 29
246
+
247
+ puts "あなたの星座は魚座です!"
248
+
249
+ else
250
+
251
+ puts ""
252
+
253
+ end
88
254
 
89
255
  end
90
256
 
@@ -92,18 +258,4 @@
92
258
 
93
259
 
94
260
 
95
- ### 発生している問題・エラーメッセージ
96
-
97
-
98
-
99
- ```
100
-
101
- Traceback (most recent call last):
102
-
103
- hoge.rb:4:in `<main>': undefined method `split' for 2000:Integer (NoMethodError)
104
-
105
- ```
106
-
107
-
108
-
109
261
  どこがおかしいか教えていただきたいです。

1

わかりずらいと指摘されたプログラムを記載していました。今回の質問はこちらになります。

2020/06/17 18:04

投稿

xyjs
xyjs

スコア13

test CHANGED
File without changes
test CHANGED
@@ -32,157 +32,59 @@
32
32
 
33
33
  puts "{yyyy-mm-dd}"
34
34
 
35
- input = gets.chomp
35
+ input = gets.chomp.to_i
36
-
37
- puts input
38
36
 
39
37
  yyyy, mm, dd = input.split("-").map(&:to_i)
40
38
 
41
39
 
42
40
 
43
- if mm == 3
41
+ def judge(month, day)
44
42
 
45
- if 21 <= dd && dd <=31
43
+ names = ["山羊座", "水瓶座", "魚座", "牡羊座",
46
44
 
47
- puts "あなたの星は牡羊です!"
45
+ "牡牛座", "双子座", "蟹座", "獅子", "乙女座",
48
46
 
49
- elsif 1 <= dd && dd <= 20
47
+ "天秤座", "蠍座", "射手座"]
50
48
 
49
+
50
+
51
+ day1 = [19, 18, 20, 19, 20,
52
+
53
+ 21, 22, 22, 22, 23, 22, 21]
54
+
55
+
56
+
57
+ day2 = [31, 29, 31, 30, 31,
58
+
59
+ 30, 31, 31, 30, 31, 30, 31]
60
+
61
+
62
+
63
+ for count in 0..11
64
+
65
+ if month == count + 1
66
+
67
+ if day <= day1[count]
68
+
69
+ name = names[count]
70
+
71
+ return name
72
+
51
- puts "あなたの星座は魚座です!"
73
+ elsif day <= day2[count]
74
+
75
+ name = names[(count + 1) % names.length]
76
+
77
+ return name
78
+
79
+ end
80
+
81
+ end
52
82
 
53
83
  end
54
84
 
55
- elsif mm == 4
85
+ ju = judge(mm, dd)
56
86
 
57
- if 1 <= dd && dd <= 19
58
-
59
- puts "あなたの星座は牡羊座です!"
60
-
61
- elsif 20 <= dd && dd <= 30
62
-
63
- puts "あなたの星座は牡牛座です!"
64
-
65
- end
66
-
67
- elsif mm == 5
87
+ print ju
68
-
69
- if 1 <= dd && dd <= 20
70
-
71
- puts "あなたの星座は牡牛座です!"
72
-
73
- elsif 21 <= dd && dd <= 31
74
-
75
- puts "あなたの星座は双子座です!"
76
-
77
- end
78
-
79
- elsif mm == 6
80
-
81
- if 1 <= dd && dd <= 21
82
-
83
- puts "あなたの星座は双子座です!"
84
-
85
- elsif 22 <= dd && dd <= 30
86
-
87
- puts "あなたの星座はかに座です!"
88
-
89
- end
90
-
91
- elsif mm == 7
92
-
93
- if 1 <= dd && dd <= 22
94
-
95
- puts "あなたの星座はかに座です!"
96
-
97
- elsif 23 <= dd && dd <= 31
98
-
99
- puts "あなたの星座は獅子座です!"
100
-
101
- end
102
-
103
- elsif mm == 8
104
-
105
- if 1 <= dd && dd <= 22
106
-
107
- puts "あなたの星座は獅子座です!"
108
-
109
- elsif 23 <= dd && dd <= 31
110
-
111
- puts "あなたの星座は乙女座です!"
112
-
113
- end
114
-
115
- elsif mm == 9
116
-
117
- if 1 <= dd && dd <= 22
118
-
119
- puts "あなたの星座は乙女座です!"
120
-
121
- elsif 23 <= dd && dd <= 30
122
-
123
- puts "あなたの星座は天秤座です!"
124
-
125
- end
126
-
127
- elsif mm == 10
128
-
129
- if 1 <= dd && dd <= 23
130
-
131
- puts "あなたの星座は天秤座です!"
132
-
133
- elsif 24 <= dd && dd <= 31
134
-
135
- puts "あなたの星座は蠍座です!"
136
-
137
- end
138
-
139
- elsif mm == 11
140
-
141
- if 1 <= dd && dd <= 22
142
-
143
- puts "あなたの星座は蠍座です!"
144
-
145
- elsif 23 <= dd && dd <= 30
146
-
147
- puts "あなたの星座は射手座です!"
148
-
149
- end
150
-
151
- elsif mm == 12
152
-
153
- if 1 <= dd && dd <= 21
154
-
155
- puts "あなたの星座は射手座です!"
156
-
157
- elsif 22 <= dd && dd <= 31
158
-
159
- puts "あなたの星座は山羊座です!"
160
-
161
- end
162
-
163
- elsif mm == 1
164
-
165
- if 1 <= dd && dd <= 19
166
-
167
- puts "あなたの星座は山羊座です!"
168
-
169
- elsif 20 <= dd && dd <= 31
170
-
171
- puts "あなたの星座は水瓶座です!"
172
-
173
- end
174
-
175
- elsif mm == 2
176
-
177
- if 1 <= dd && dd <= 18
178
-
179
- puts "あなたの星座は水瓶座です!"
180
-
181
- elsif 19 <= dd && dd <= 29
182
-
183
- puts "あなたの星座は魚座です!"
184
-
185
- end
186
88
 
187
89
  end
188
90
 
@@ -190,4 +92,18 @@
190
92
 
191
93
 
192
94
 
95
+ ### 発生している問題・エラーメッセージ
96
+
97
+
98
+
99
+ ```
100
+
101
+ Traceback (most recent call last):
102
+
103
+ hoge.rb:4:in `<main>': undefined method `split' for 2000:Integer (NoMethodError)
104
+
105
+ ```
106
+
107
+
108
+
193
109
  どこがおかしいか教えていただきたいです。