求助,在电脑上调试的好好的提交之后编译不通过
查看原帖
求助,在电脑上调试的好好的提交之后编译不通过
45970
筱刘丶楼主2020/9/11 17:17
#include<stdio.h>
#include<stdlib.h>
struct stack{
	char *top;
	char *base;
	int sizestack;
}; 
void initstack(struct stack &s){
	s.base=(char *)malloc(100*sizeof(char));
	if(!s.base) exit(-1);
	s.top=s.base;
	s.sizestack=100;
}
void push(struct stack &s,char c){
	if(s.top-s.base==s.sizestack){
		s.base=(char *)realloc(s.base,(s.sizestack+10)*sizeof(char));
		s.top=s.base+s.sizestack;
		s.sizestack+=10;
	}
	*s.top++=c;
}
int pop(struct stack &s,char &e){
	if(s.top==s.base) return 0;
	e=*--s.top;
}
int gettop(struct stack &s){
	if(s.top==s.base) return 0;
	return 1;
}
int main(){
	char c[100];
	int i;              
	for(i=1;i<=100;i++){
		if((c[i]=getchar())=='\n')
		break;
	}
	for(int j=i;j>=1;j--){
		if(c[j])
		for(int k=j;k>=1;k--){
			if((c[j]-c[k])==1){
				printf("%c%c",c[k],c[j]);
				c[k]=c[j]=0;
				break;
			}
		}
	}
	struct stack s;
	initstack(s);
	for(int j=i-1;j>=1;j--){
		if(c[j])
		push(s,c[j]);
	}
	char a;
	while(gettop(s)){
		pop(s,a);
		if(a==40)
		printf("%c%c",a,a+1);
		if(a==91)
		printf("%c%c",a,a+2);
		if(a==93)
		printf("%c%c",a-2,a);
		if(a==41)
		printf("%c%c",a-1,a);
	}	
	return 0;
}
2020/9/11 17:17
加载中...