スタックで文字列をプッシュし、それを最後にポップしたいのですが、main関数内のfor文のところが出力されずに終わってしまいます。
どうしたら出力されますか?
可能でしたら、このプログラムを動的メモリによる構造体を用いたものも教えてくださると助かります。
以下、ソースコード~
#include<stdio.h>
#define STACKSIZE 100
char num[STACKSIZE];
char name[STACKSIZE];
int sp = 0;
void push(char x,char y)
{
num[sp] = x;
name[sp] = y;
sp++;
return;
}
int pop(void)
{
return sp - 1;
}
int main(void)
{
char x, y;
int i ,a = 1;
printf("データを入力して下さい。\n");
while (a != 0) { printf("学籍番号:"); scanf("%s", &x); printf("名前:"); scanf("%s", &y); push(x, y); printf("終了⇒0,続行⇒1\n終了しますか:"); scanf("%d", &a); } for (i = sp; i > 0; i--) { printf("学籍番号:%s\n", num[pop()]); printf("名前:%s\n", name[pop()]); } return 0;
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/21 13:15
2018/11/21 14:16 編集