C/C++の宿題を片付けます 65代目
■ このスレッドは過去ログ倉庫に格納されています
0372デフォルトの名無しさん
2006/05/25(木) 08:12:50#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<ctype.h>
double s[80],*t=s,value[80];
char c[80],name[80][80];
int max_p=0;
double*srch(char*p){
int i;
for(i=0;i<max_p;++i)
if(strcmp(name[i],p)==0)return value+i;
strcpy(name[i],p);
return value+i;
}
#define o(p) else if(strcmp(c,#p)==0){--t;t[-1] = t[-1] p t[0];}
int main(){
while(!~-scanf(" %79s",c))
if(0){}o(+)o(-)o(*)o(/)
else if(strcmp(c,"=")==0)printf("%g\n",*--t);
else if(strcmp(c,"sin")==0)t[-1] = sin(t[-1]);
else if(strcmp(c,"cos")==0)t[-1] = cos(t[-1]);
else if(*c=='>') printf("%g\n",*srch(c+1) = *--t);
else if(isdigit(*c)) *t++=atof(c);
else *t++ = *srch(c+1);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています