Дано выражение a*b/(a+b). Организовать вычисление этого выражения, используя алгоритм польской записи. Применить системн - C (СИ)
Формулировка задачи:
Дано выражение a*b/(a+b). Организовать вычисление этого выражения, используя алгоритм польской записи. Применить системный стек.
Лог ошибок:
Вот библиотека:
subscripted value is neither array nor pointer nor vector 8_12.c /8_12 line 16 C/C++ Problem
subscripted value is neither array nor pointer nor vector 8_12.c /8_12 line 19 C/C++ Problem
#include#include #include #include "stack.h" int main () { P_STACK st; P_NODE nd; char expr = "*+ab-cd"; char ch; int a, b, c, d, i, aStep, bStep, cStep, dStep, add, mult, sub, res; st = (P_NODE) malloc (sizeof (stack)); init_stack (st); i = 0; while (expr[i]!='\0') { nd=(P_NODE) malloc (sizeof (node)); nd->info=expr[i]; push (st, nd); i++; } printf ("Enter the 4th number:"); scanf ("%d%d%d%d", &a, &b, &c, &d); while (!is_stack_empty (st)) { nd = pop (st); if (!is_stack_empty (st)) switch (nd->info) { case 'd': dStep=d; break; case 'c': cStep=c; break; case '-': sub=cStep-dStep; break; case 'b': bStep=b; break; case 'a': aStep=a; break; case '+': add=bStep+aStep; break; case '*': mult=add*sub; break; } } res=mult; printf ("Result: [expr=%d] = [%d]", expr, res); return 0; }
#ifndef STACK_H_ #define STACK_H_ typedef struct NODE NODE; typedef struct NODE *P_NODE; typedef struct STACK STACK; typedef struct STACK *P_STACK; struct NODE { int info; P_NODE next; } node; struct STACK { int count; int size; P_NODE top; } stack; typedef enum {false, true} bool; void init_stack (P_STACK st); bool is_stack_empty (P_STACK st); void push (P_STACK st, P_NODE nd); P_NODE pop (P_STACK st); void print_stack (P_STACK st); #endif
Решение задачи: «Дано выражение a*b/(a+b). Организовать вычисление этого выражения, используя алгоритм польской записи. Применить системн»
textual
Листинг программы
char * arr = "string";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д