質問編集履歴
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
-
逆ポーランド記法での電卓をつくっているのですが
|
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
|
-
do
|
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
自分の記入したコードの掲載
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
|
+
これであっているのでしょうか?
|