- 87 名前:>>16 mailto:sage [2007/09/22(土) 20:10:26 ]
- #include <stdio.h>
#include <stdlib.h> #include <string.h> #include <ctype.h> int main(void){ double reg = 0, mem = 0; char buf[128] = {0}, *p; while(1){ scanf("%127s", buf); if(!strcmp(buf, "end:")) break; else if(!strcmp(buf, "M+")) mem += reg; else if(!strcmp(buf, "M-")) mem -= reg; else if(!strcmp(buf, "MR")) reg = mem; else if(!strcmp(buf, "RC")) reg = 0; else if(!strcmp(buf, "MC")) mem = 0; else if(isalpha(*buf)) fprintf(stderr, "error\n"); else{ p = buf; reg += strtod(p, &p); while(*p != '=' && *p != '\0') switch(*p++){ case '+' : reg += strtod(p, &p); break; case '-' : reg -= strtod(p, &p); break; case '*' : reg *= strtod(p, &p); break; case '/' : reg /= strtod(p, &p); break; default : reg = strtod(p, &p); break; } } printf("reg = %g \t mem = %g\n", reg, mem); } return 0; }
|

|