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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы