質問編集履歴

2

修正

2020/12/02 04:44

投稿

otasann
otasann

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,11 @@
1
- 逆ポーランド記法での電卓をつくっているのですがdouble pop(void)とint isFull(void)の中身わからないです。
1
+ 逆ポーランド記法での電卓をつくっているのですが'+', '-', '*', '/', '=', 'd' : sp=0繰り返し出ているだけで、答えが出ないです。
2
2
 
3
3
  教えてください。検索してみたのですがいまいちわからないです。
4
4
 
5
+ #include<stdio.h>
6
+
7
+ #define SIZE 5
8
+
5
9
  double stack[SIZE];
6
10
 
7
11
  int sp;
@@ -142,9 +146,11 @@
142
146
 
143
147
  {
144
148
 
145
- //ここがわからない
149
+ if(sp<=0)return 0;
150
+
146
-
151
+ sp--;
152
+
147
-
153
+ return stack[sp];
148
154
 
149
155
  }
150
156
 
@@ -154,9 +160,13 @@
154
160
 
155
161
  {
156
162
 
157
- //ここがわからない
163
+ if(sp>=SIZE){
164
+
158
-
165
+ return 1;
166
+
159
-
167
+ }
168
+
169
+ return 0;
160
170
 
161
171
  }
162
172
 
@@ -206,32 +216,18 @@
206
216
 
207
217
 
208
218
 
209
-
219
+ エラー文
220
+
210
-
221
+ '+', '-', '*', '/', '=', 'd' : sp=1
222
+
223
+ '+', '-', '*', '/', '=', 'd' : sp=1
224
+
225
+ '+', '-', '*', '/', '=', 'd' : sp=1
226
+
227
+ '+', '-', '*',
228
+
229
+
230
+
231
+
232
+
211
- double pop(void)の部分は
233
+ ideoneを使用してWindowsで動かしています。
212
-
213
- {
214
-
215
- if(sp<=0)return 0;
216
-
217
- sp--;
218
-
219
- return stack[sp];
220
-
221
- }
222
-
223
- int isFull(void)の部分は
224
-
225
- {
226
-
227
- if(sp>=SIZE){
228
-
229
- return 1;
230
-
231
- }
232
-
233
- return 0;
234
-
235
- }
236
-
237
- これであっているのでしょうか?

1

自分の記入したコードの掲載

2020/12/02 04:44

投稿

otasann
otasann

スコア8

test CHANGED
@@ -1 +1 @@
1
- 逆ポーランド記法での電卓をつくっており、一部の中身がわからない
1
+ 逆ポーランド記法での電卓をつくっており、一部の中身がわからない(あっているかがわからないです)
test CHANGED
@@ -203,3 +203,35 @@
203
203
  sp = 0;
204
204
 
205
205
  }
206
+
207
+
208
+
209
+
210
+
211
+ double pop(void)の部分は
212
+
213
+ {
214
+
215
+ if(sp<=0)return 0;
216
+
217
+ sp--;
218
+
219
+ return stack[sp];
220
+
221
+ }
222
+
223
+ int isFull(void)の部分は
224
+
225
+ {
226
+
227
+ if(sp>=SIZE){
228
+
229
+ return 1;
230
+
231
+ }
232
+
233
+ return 0;
234
+
235
+ }
236
+
237
+ これであっているのでしょうか?