Дано выражение 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";