#include <stdio.h>
struct Stack{
char data [100];
int top;
}Stack;
// Stack 구조체를 전역으로 선언
void Init(){
Stack.top=-1;
}
//Stack 구조체를 초기화 해주는 함수
void push(char data){
Stack.data[++Stack.top]=data;
}
//Stack 구조체에 문자를 push하는 함수
char pop(){
return Stack.data[Stack.top--];
}
//Stack 구조체의 최상위 노드를 반환하는 함수
int main(){
Init();
char input[50];
scanf("%s",&input);
int i=0;
int top = -1;
char temp;
}
//메인 함수
while(input[i] !='0')
{
//입력받은 문자열의 마지막 문자까지 반복
if(input[i] '+'| input[i]'-'| input[i]'*'| input[i]'/'){
//연산자를 만난 경우
switch(input[i]){
case '+': case'-':
{
if(top -1){
push(input[i]);
top ++;
break;
}
while(top != -1){
int temp = pop();
top--;
printf("%c",temp);
}
push(input[i]);
top++;
break;
}
case'*': case '/':
{
if(top -1){
push(input[i]);
top++;
break;
}
int temp= pop();
top--;
if(temp'*'|temp '/')
printf("%c",temp);
else{
push(input[i]);
top++;
break;
}
}
}
else {
printf("%c",input[i]);
i++;
}
for(int i=0; i<=top; i++){
printf("%c",pop());
}
}
}
이코드 중위표기법을 후위표기법으로 바꾸는 코드인데 자꾸 while 부분에서 expected identifier or '(' before 'while'이라구 뜬다 ㅜㅜ
돌아가지를 않으니 이코드가 맞는지도 모르겠어 제발도와줘 ㅜㅜㅜㅜㅜㅜㅜㅜ