summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadeep Madurange <smadurange@users.noreply.github.com>2022-01-12 20:58:27 +0800
committerSadeep Madurange <smadurange@users.noreply.github.com>2022-01-12 20:58:27 +0800
commit3f4d2761c1eec8ae51fc42510a014d3f7f26d632 (patch)
treea00cd68969069058e8d1ef64a4c7d2b5ccb69533
parentb01c226fa0132dffcddcb803b0375570f37a3f36 (diff)
downloadk&r-exercises-3f4d2761c1eec8ae51fc42510a014d3f7f26d632.tar.gz
5.10
-rw-r--r--5/10.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/5/10.c b/5/10.c
index b7bb523..c7729ae 100644
--- a/5/10.c
+++ b/5/10.c
@@ -6,7 +6,7 @@
/* Evaluates reverse Polish expressions */
int main(int argc, char *argv[]) {
- char op[MAXLEN], *s;
+ char op[MAXLEN], *s;
int val[MAXLEN], i, j, k, op1, op2;
if (argc == 1) {
@@ -14,11 +14,13 @@ int main(int argc, char *argv[]) {
return 1;
}
- for(i = 0, j = 0, ++argv; --argc > 0 && i < MAXLEN - 1 && j < MAXLEN - 1; argv++) {
+ for (i = 0, j = 0, ++argv; --argc > 0 && i < MAXLEN - 1 && j < MAXLEN - 1;
+ argv++) {
s = *argv;
if (isdigit(*s))
val[i++] = atoi(s);
- else if (s[0] == '+' || s[0] == '-' || s[0] == '*' || s[0] == '/' || s[0] == '%')
+ else if (s[0] == '+' || s[0] == '-' || s[0] == '*' || s[0] == '/' ||
+ s[0] == '%')
op[j++] = s[0];
else {
printf("error: %s not supported\n", s);
@@ -28,7 +30,7 @@ int main(int argc, char *argv[]) {
k = j;
j = 0;
-
+
while (j < k && i > 1) {
op2 = val[--i];
op1 = val[--i];
@@ -37,16 +39,16 @@ int main(int argc, char *argv[]) {
val[i++] = op1 + op2;
break;
case '-':
- val[i++] = op1 - op2;
+ val[i++] = op1 - op2;
break;
case '*':
- val[i++] = op1 * op2;
+ val[i++] = op1 * op2;
break;
case '/':
- val[i++] = op1 / op2;
+ val[i++] = op1 / op2;
break;
case '%':
- val[i++] = op1 % op2;
+ val[i++] = op1 % op2;
break;
default:
printf("error: unknown op\n");