EOJ 3174 入栈出栈

来源:互联网 发布:pam打分矩阵 编辑:程序博客网 时间:2024/05/17 02:00
#include <stdio.h>#include <stdlib.h>#include <string.h>char stack[1500];//栈数组int top=0;//栈顶int push(char x){    if(top>=1025)//栈满,入栈失败        return 1;    stack[top++]=x;//否则入栈,先入栈后top加一    return 0;}int pop(){    if(top>=2)//出栈,当不是最后一个元素时候打印加空格        printf("%c ",stack[--top]);    else if(top==1)//最后一个元素出栈加换行符        printf("%c\n",stack[--top]);    return 0;}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        memset(stack,0,sizeof(stack));//初始化栈数组        top=0;        getchar();//读入换行符        int i;        char x;        for(i=0;i<n;i++)        {            scanf("%c",&x);//每次输入后都读入换行符            getchar();            push(x);//入栈        }        while(top!=0)            pop();//非空时,出栈    }    return 0;}
注意输入时输入的是字符,所以要用getchar()读取换行符或者空格以保证入栈的都是输入的字符。
0 0
原创粉丝点击