diff options
| author | Sadeep Madurange <smadurange@users.noreply.github.com> | 2021-12-18 14:11:53 +0800 |
|---|---|---|
| committer | Sadeep Madurange <smadurange@users.noreply.github.com> | 2021-12-18 14:11:53 +0800 |
| commit | 17400db194b140fba5c709c5e01ec57fa5c5197a (patch) | |
| tree | 7a1444ee1e6c606fe3250e834b8db7a6a7716790 /4/10.c | |
| parent | c9e51832c6646f9813100bc098b7f5b38aff0433 (diff) | |
| download | k&r-exercises-17400db194b140fba5c709c5e01ec57fa5c5197a.tar.gz | |
4.10
Diffstat (limited to '4/10.c')
| -rw-r--r-- | 4/10.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -15,6 +15,7 @@ #define INDEX(x) (x <= 'Z' ? x - 'A' : x - 71) /* index of the variable */ int var[52]; +double lout; void push(double); double peek(); @@ -69,8 +70,17 @@ int main(int argc, char *argv[]) { case '=': var[INDEX(s[0])] = pop(); break; + case VAR: + if (strcmp("LOUT", s) == 0) + push(lout); + else + push(var[INDEX(s[0])]); + break; case FUN: break; + case '\n': + lout = pop(); + printf("\t%.8g\n", lout); default: printf("error: unknown command %s\n", s); } @@ -86,7 +96,7 @@ int line[MAXLINE]; int mgetline() { int i, c; - for (i = 0; i < MAXLINE - 1 && (c = getchar()) != '\n' && c != EOF; i++) { + for (i = 0; i < MAXLINE - 1 && (c = getchar()) != EOF; i++) { line[i] = c; } @@ -103,7 +113,7 @@ int getop(char s[]) { s[1] = 0; // special characters and operators - if (c == 0 || c == '+' || c == '*' || c == '/' || c == '%' || + if (c == 0 || c == '+' || c == '*' || c == '/' || c == '%' || c == '\n' || (c == '-' && isdigit(line[idx + 1])) || c == EOF) return c; |
