#include <stdio.h>
#define SIZE 5 // スタックの最大サイズ(必要に応じて変更してください)
double stack[SIZE]; // スタックの本体(実数型)
int sp = 0; // スタックポインタ
// 関数のプロトタイプ宣言
void push(double value);
double pop(void);
int isFull(void);
int isEmpty(void);
void answer(void);
void reset(void);
int main(void) {
int resp;
double val;
// cal1, cal2 は必要に応じてmain内で使用してください
double cal1, cal2;
while (1) {
printf("1:push 2:pop 3:show 9:exit \nメニューを選択してください: "); // scanfの戻り値警告に対応するため、戻り値をチェックするかキャストする
if (scanf("%d", &resp
) != 1) { break;
}
if (resp == 9) {
break; // 45行目付近の「case 9」エラー対策:正しくループを抜ける処理
}
switch (resp) {
case 1:
if (scanf("%lf", &val
) == 1) { push(val);
}
break;
case 2:
// 28〜29行目のエラー対策:正しくpopを呼び出して変数に代入
if (!isEmpty()) {
cal1 = pop();
} else {
}
break;
case 3:
answer();
break;
default:
printf("正しいメニューを選択してください。\n"); break;
}
}
return 0;
}
// --- スタック操作関数群 ---
// データを入れる
void push(double value) {
if (isFull()) { // ❌ if(isFull(){ のタイポを修正
return;
}
stack[sp] = value;
sp++;
}
// データを south (取り出す)
double pop(void) {
if (isEmpty()) { // ❌ if(isEmpty)(){ のタイポを修正
return 0.0; // ❌ 戻り値がない警告を修正(0.0を返す)
}
sp--;
return stack[sp];
}
// スタックが満杯か確認する
int isFull(void) {
if (sp >= SIZE) { // ❌ => を >= に修正
return 1;
}
return 0;
}
// スタックが空か確認する
int isEmpty(void) {
if (sp == 0) {
return 1;
}
return 0;
}
// スタックの中身を表示する
void answer(void) {
// ❌ forの更新式後ろの「;」を削除。printfの「%d」を「%f」に修正
for (int i = 0; i < sp; i++) {
printf("stack[%d] = %f \n", i
, stack
[i
]); }
}
// スタックをリセットする
void reset(void) {
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNSAvLyDjgrnjgr/jg4Pjgq/jga7mnIDlpKfjgrXjgqTjgrrvvIjlv4XopoHjgavlv5zjgZjjgablpInmm7TjgZfjgabjgY/jgaDjgZXjgYTvvIkKCmRvdWJsZSBzdGFja1tTSVpFXTsgLy8g44K544K/44OD44Kv44Gu5pys5L2T77yI5a6f5pWw5Z6L77yJCmludCBzcCA9IDA7ICAgICAgICAgLy8g44K544K/44OD44Kv44Od44Kk44Oz44K/CgovLyDplqLmlbDjga7jg5fjg63jg4jjgr/jgqTjg5flrqPoqIAKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSk7CmRvdWJsZSBwb3Aodm9pZCk7CmludCBpc0Z1bGwodm9pZCk7CmludCBpc0VtcHR5KHZvaWQpOwp2b2lkIGFuc3dlcih2b2lkKTsKdm9pZCByZXNldCh2b2lkKTsKCmludCBtYWluKHZvaWQpIHsKICAgIGludCByZXNwOwogICAgZG91YmxlIHZhbDsKICAgIC8vIGNhbDEsIGNhbDIg44Gv5b+F6KaB44Gr5b+c44GY44GmbWFpbuWGheOBp+S9v+eUqOOBl+OBpuOBj+OBoOOBleOBhAogICAgZG91YmxlIGNhbDEsIGNhbDI7IAoKICAgIHdoaWxlICgxKSB7CiAgICAgICAgcHJpbnRmKCIxOnB1c2ggMjpwb3AgMzpzaG93IDk6ZXhpdCBcbuODoeODi+ODpeODvOOCkumBuOaKnuOBl+OBpuOBj+OBoOOBleOBhDogIik7CiAgICAgICAgLy8gc2Nhbmbjga7miLvjgorlgKTorablkYrjgavlr77lv5zjgZnjgovjgZ/jgoHjgIHmiLvjgorlgKTjgpLjg4Hjgqfjg4Pjgq/jgZnjgovjgYvjgq3jg6Pjgrnjg4jjgZnjgosKICAgICAgICBpZiAoc2NhbmYoIiVkIiwgJnJlc3ApICE9IDEpIHsKICAgICAgICAgICAgYnJlYWs7IAogICAgICAgIH0KCiAgICAgICAgaWYgKHJlc3AgPT0gOSkgewogICAgICAgICAgICBicmVhazsgLy8gNDXooYznm67ku5jov5Hjga7jgIxjYXNlIDnjgI3jgqjjg6njg7zlr77nrZbvvJrmraPjgZfjgY/jg6vjg7zjg5fjgpLmipzjgZHjgovlh6bnkIYKICAgICAgICB9CgogICAgICAgIHN3aXRjaCAocmVzcCkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBwcmludGYoIuODl+ODg+OCt+ODpeOBmeOCi+aVsOWApOOCkuWFpeWKmzogIik7CiAgICAgICAgICAgICAgICBpZiAoc2NhbmYoIiVsZiIsICZ2YWwpID09IDEpIHsKICAgICAgICAgICAgICAgICAgICBwdXNoKHZhbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgLy8gMjjjgJwyOeihjOebruOBruOCqOODqeODvOWvvuetlu+8muato+OBl+OBj3BvcOOCkuWRvOOBs+WHuuOBl+OBpuWkieaVsOOBq+S7o+WFpQogICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAgICBjYWwxID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCLjg53jg4Pjg5fjgZfjgZ/lgKQ6ICVmXG4iLCBjYWwxKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jga/nqbrjgafjgZnjgIJcbiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIGFuc3dlcigpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBwcmludGYoIuato+OBl+OBhOODoeODi+ODpeODvOOCkumBuOaKnuOBl+OBpuOBj+OBoOOBleOBhOOAglxuIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQoKLy8gLS0tIOOCueOCv+ODg+OCr+aTjeS9nOmWouaVsOe+pCAtLS0KCi8vIOODh+ODvOOCv+OCkuWFpeOCjOOCiwp2b2lkIHB1c2goZG91YmxlIHZhbHVlKSB7CiAgICBpZiAoaXNGdWxsKCkpIHsgLy8g4p2MIGlmKGlzRnVsbCgpeyDjga7jgr/jgqTjg53jgpLkv67mraMKICAgICAgICBwcmludGYoIuOCqOODqeODvDog44K544K/44OD44Kv44GM5rqA5p2v44Gn44GZ44CCXG4iKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBzdGFja1tzcF0gPSB2YWx1ZTsKICAgIHNwKys7Cn0KCi8vIOODh+ODvOOCv+OCkiBzb3V0aCAo5Y+W44KK5Ye644GZKQpkb3VibGUgcG9wKHZvaWQpIHsKICAgIGlmIChpc0VtcHR5KCkpIHsgLy8g4p2MIGlmKGlzRW1wdHkpKCl7IOOBruOCv+OCpOODneOCkuS/ruatowogICAgICAgIHByaW50Zigi44Ko44Op44O8OiDjgrnjgr/jg4Pjgq/jgYznqbrjgafjgZnjgIJcbiIpOwogICAgICAgIHJldHVybiAwLjA7ICAvLyDinYwg5oi744KK5YCk44GM44Gq44GE6K2m5ZGK44KS5L+u5q2j77yIMC4w44KS6L+U44GZ77yJCiAgICB9CiAgICBzcC0tOwogICAgcmV0dXJuIHN0YWNrW3NwXTsKfQoKLy8g44K544K/44OD44Kv44GM5rqA5p2v44GL56K66KqN44GZ44KLCmludCBpc0Z1bGwodm9pZCkgewogICAgaWYgKHNwID49IFNJWkUpIHsgLy8g4p2MID0+IOOCkiA+PSDjgavkv67mraMKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiAwOwp9CgovLyDjgrnjgr/jg4Pjgq/jgYznqbrjgYvnorroqo3jgZnjgosKaW50IGlzRW1wdHkodm9pZCkgewogICAgaWYgKHNwID09IDApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiAwOwp9CgovLyDjgrnjgr/jg4Pjgq/jga7kuK3ouqvjgpLooajnpLrjgZnjgosKdm9pZCBhbnN3ZXIodm9pZCkgewogICAgLy8g4p2MIGZvcuOBruabtOaWsOW8j+W+jOOCjeOBruOAjDvjgI3jgpLliYrpmaTjgIJwcmludGbjga7jgIwlZOOAjeOCkuOAjCVm44CN44Gr5L+u5q2jCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNwOyBpKyspIHsKICAgICAgICBwcmludGYoInN0YWNrWyVkXSA9ICVmIFxuIiwgaSwgc3RhY2tbaV0pOwogICAgfQp9CgovLyDjgrnjgr/jg4Pjgq/jgpLjg6rjgrvjg4Pjg4jjgZnjgosKdm9pZCByZXNldCh2b2lkKSB7CiAgICBzcCA9IDA7Cn0K