codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #define N 1024 #if 0 #include <math.h> double root(double r) { return sqrt(r); } #endif double root(double r) { int i; double e = 1.0; for (i = 0; i < 100; i++) e = 0.5 * (e + r / e); return e; } int main() { double a = 0.0, b = 0.0; int d = 0, c[2]; char buff[N], *p; p = buff; for (;;) { scanf("%1s", &c); c[0] = (c[0] & 0xff); if (c[0] == 'q') break; if (c[0] == '+' || c[0] == '-' || c[0] == '*' || c[0] == '/' || c[0] == 'r') { a = b; *p = '\0'; sscanf(buff, "%lf", &b); p = buff; d = c[0]; } else if (c[0] == '=') { a = b; *p = '\0'; sscanf(buff, "%lf", &b); p = buff; switch (d) { case '+': b += a; break; case '-': b -= a; break; case '*': b *= a; break; case '/': b /= a; break; case 'r': b = root(b); break; } printf("%.15g\n", b); } else if (c[0] >= '0' && c[0] <= '9') { *(p++) = c[0]; } } return 0; } /* end */
Private
[
?
]
Run code
Submit