#include #include #include #define MAX 20 #define TLEN 10 #define FMAX 160 void Seperate_Token(); int priority_op(char *s); void calculateF();//ÈÄÀ§½Ä °è»êÇϱâ char token[MAX][TLEN],cto[MAX][TLEN]; char pro[FMAX];//¼ö½ÄÀÔ·ÂÇϱâ float calculF[MAX]; int tlen,tline,ctline=0;//¿­°ú ÇàÀ§Ä¡ ÁöÁ¤Çϱâ int main(void) { char *test; printf("½ÄÀ» ÀÔ·ÂÇϽÿÀ:"); gets(test); } void Seperate_Token()//ÅäÅ«À¸·Î ³ª´©±â { char test; int i; for(i=0;i<=strlen(pro);i++) { test = pro[i]; if((test>='0'&&test<='9'||test=='.')) token[tline][tlen++]=test; else//¼ýÀÚ°¡ ¾Æ´Ò °æ¿ì { if((pro[i-1]>='0'&&pro[i-1]<='9')||(pro[i-1]=='.')) { token[tline][tlen]='\0'; tline++; tlen=0; } if(test==' ')//°ø¹éÀÏ °æ¿ì continue; token[tline][0] = test; token[tline][1]= '\0'; tline++; } } } int priority_op(char *s){ if(s==NULL) return 4; switch(s[0]){ case '(': //°¡Àå ³·À½ return 0; case '+': case '-': return 1; case '*': case '/': return 2; case ')': // ¿ì¼±¼øÀ§°¡ °¡Àå³ôÀ½ return 3; } return 4; } float Calculate(float a, float b, char c) { switch (c) { case '+': return a+b; break; case '-': return a-b; break; case '*': return a*b; break; case '/': return a/b; break; } } void calculateF()//°è»êÇغ¸±â { int i; int cal_len=0; for(int i=0; i='0'&&cto[i][0]<='9') calculF[cal_len++]=atof(cto[i]); else { calculF[cal_len-2]=Calculate(calculF[cal_len-2],calculF[cal_len-1],cto[i][0]); cal_len--; } } printf("°è»ê : %f\n",calculF[0]); }