#include<stdio.h>
#define SIZE 10
/*AIログ
それぞれの関数の役割の確認
理解したこと:15~21のコメントの内容
while文の中での処理の流れの確認
理解したこと:switch文の型および、中の処理の流れ
9を選んだ時の終了の仕方
理解したこと:swhich文の中で、9を選んだ時にcaseでは表示のみの処理をさせ、それから外に出て、if文でhugashi==9の時にbreakさせることで、while文を終了させることができる
*/
double stack[SIZE];
int sp;
int i=0;
double a,b;
double j;
void push(double value);//スタックにデータを格納する
double pop(void);//スタックからデータを取り出す
int isFull(void);//スタックが満杯かどうかを判定する
int isEmpty(void);//スタックが空かどうかを判定する
void answer(void);//計算結果の表示
void reset(void);//スタックの中身をすべて空にする(初期化する)
int main(void){
reset();
while(1){
switch(i)
{
case 1:
b=pop();
a=pop();
push(b+a);
break;
case 2:
a=pop();
b=pop();
push(b-a);
break;
case 3:
a=pop();
b=pop();
push(b*a);
break;
case 4:
a=pop();
b=pop();
push(b/a);
break;
case 5:
push(j);
break;
case 9:
answer();
break;
default:
}
if(i==9)
break;
}
return 0;
}
void push(double value)
{
if(isFull()){
}
else{
stack[sp] = value;
sp++;
}
}
double pop(void)
{
if(sp<=0){
return 0;
}
else{
sp--;
return stack[sp];
}
}
int isFull(void)
{
if(sp>=SIZE){
return 1;
}else{
return 0;
}
}
int isEmpty(void)
{
if(sp==0){
return 1;
}
else{
return 0;
}
}
void answer(void)
{
double ans;
ans = pop();
printf("answer:%lfです\n", ans
); }
void reset(void)
{
sp=0;
stack[0] = 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2RlZmluZSBTSVpFIDEwCi8qQUnjg63jgrAK44Gd44KM44Ge44KM44Gu6Zai5pWw44Gu5b255Ymy44Gu56K66KqNCueQhuino+OBl+OBn+OBk+OBqDoxNX4yMeOBruOCs+ODoeODs+ODiOOBruWGheWuuQp3aGlsZeaWh+OBruS4reOBp+OBruWHpueQhuOBrua1geOCjOOBrueiuuiqjQrnkIbop6PjgZfjgZ/jgZPjgajvvJpzd2l0Y2jmlofjga7lnovjgYrjgojjgbPjgIHkuK3jga7lh6bnkIbjga7mtYHjgowK77yZ44KS6YG444KT44Gg5pmC44Gu57WC5LqG44Gu5LuV5pa5CueQhuino+OBl+OBn+OBk+OBqO+8mnN3aGljaOaWh+OBruS4reOBp+OAge+8meOCkumBuOOCk+OBoOaZguOBq2Nhc2Xjgafjga/ooajnpLrjga7jgb/jga7lh6bnkIbjgpLjgZXjgZvjgIHjgZ3jgozjgYvjgonlpJbjgavlh7rjgabjgIFpZuaWh+OBp2h1Z2FzaGk9PTnjga7mmYLjgaticmVha+OBleOBm+OCi+OBk+OBqOOBp+OAgXdoaWxl5paH44KS57WC5LqG44GV44Gb44KL44GT44Go44GM44Gn44GN44KLCiovCgpkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKaW50IGk9MDsKZG91YmxlIGEsYjsKZG91YmxlIGo7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsvL+OCueOCv+ODg+OCr+OBq+ODh+ODvOOCv+OCkuagvOe0jeOBmeOCiwpkb3VibGUgcG9wKHZvaWQpOy8v44K544K/44OD44Kv44GL44KJ44OH44O844K/44KS5Y+W44KK5Ye644GZCgppbnQgaXNGdWxsKHZvaWQpOy8v44K544K/44OD44Kv44GM5rqA5p2v44GL44Gp44GG44GL44KS5Yik5a6a44GZ44KLCmludCBpc0VtcHR5KHZvaWQpOy8v44K544K/44OD44Kv44GM56m644GL44Gp44GG44GL44KS5Yik5a6a44GZ44KLCnZvaWQgYW5zd2VyKHZvaWQpOy8v6KiI566X57WQ5p6c44Gu6KGo56S6CnZvaWQgcmVzZXQodm9pZCk7Ly/jgrnjgr/jg4Pjgq/jga7kuK3ouqvjgpLjgZnjgbnjgabnqbrjgavjgZnjgovvvIjliJ3mnJ/ljJbjgZnjgovvvIkKCmludCBtYWluKHZvaWQpewpyZXNldCgpOwpwcmludGYoIumAhuODneODvOODqeODs+ODieOBq+OCiOOCi+a8lOeul1xuIik7CgoKd2hpbGUoMSl7CglzY2FuZigiJWQiLCAmaSk7CiAgICAKCXN3aXRjaChpKQoJewoJCWNhc2UgMToKICAgICAgICAgIGI9cG9wKCk7CiAgICAgICAgICBhPXBvcCgpOwoJCSAgcHVzaChiK2EpOwogICAgICAgIGJyZWFrOwoKCQljYXNlIDI6CiAgICAgICAgICBhPXBvcCgpOwogICAgICAgICAgYj1wb3AoKTsKICAgICAgICAgIHB1c2goYi1hKTsKICAgICAgICBicmVhazsKCgkJY2FzZSAzOgogICAgICAgICAgYT1wb3AoKTsKICAgICAgICAgIGI9cG9wKCk7CiAgICAgICAgICBwdXNoKGIqYSk7CiAgICAgICAgYnJlYWs7CgoJCWNhc2UgNDoKICAgICAgICAgIGE9cG9wKCk7CiAgICAgICAgICBiPXBvcCgpOwogICAgICAgICAgcHVzaChiL2EpOwogICAgICAgIGJyZWFrOwoKCQljYXNlIDU6CiAgICAgICAgICBwcmludGYoIuODh+ODvOOCv+OCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhDoiKTsKICAgICAgICAgIHNjYW5mKCIlbGYiLCAmaik7CiAgICAgICAgICBwdXNoKGopOwogICAgICAgIGJyZWFrOwoJCQoJCWNhc2UgOToKCQkgIGFuc3dlcigpOwoJICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgcHJpbnRmKCLnhKHlirnjgarlhaXlipvjgafjgZlcbiIpOwoJfQogICAgaWYoaT09OSkKICAgICAgICBicmVhazsKfQoKcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpCnsKICAgIGlmKGlzRnVsbCgpKXsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+OBmVxuIik7CiAgICB9CiAgICBlbHNlewogICAgICAgIHN0YWNrW3NwXSA9IHZhbHVlOwogICAgICAgIHNwKys7CiAgICB9Cn0KCgpkb3VibGUgcG9wKHZvaWQpCnsKICAgIGlmKHNwPD0wKXsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+OBmVxuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBlbHNlewogICAgICAgIHNwLS07CiAgICAgICAgcmV0dXJuIHN0YWNrW3NwXTsKICAgIH0KCn0KCgppbnQgaXNGdWxsKHZvaWQpCnsKICAgIGlmKHNwPj1TSVpFKXsKICAgICAgICByZXR1cm4gMTsKICAgIH1lbHNlewogICAgICAgIHJldHVybiAwOwogICAgfQoKfQoKCmludCBpc0VtcHR5KHZvaWQpCnsKICAgIGlmKHNwPT0wKXsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9IAp9CgoKdm9pZCBhbnN3ZXIodm9pZCkKewogICAgZG91YmxlIGFuczsKICAgIGFucyA9IHBvcCgpOwoJcHJpbnRmKCJhbnN3ZXI6JWxm44Gn44GZXG4iLCBhbnMpOwp9CgoKdm9pZCByZXNldCh2b2lkKQp7CiAgICBzcD0wOwogICAgc3RhY2tbMF0gPSAwOwp9