Я пытаюсь работать над программой, которая принимает математическое выражение от пользовательского ввода (2 + 2, 3 * 1, 4-2, 2 + 3 * 1 и т. Д.). Я получил его для работы с простым , одна операция, но она еще не работает с несколькими. Мне было предложено маркировать и оценивать строку, и пока мне удалось ее подделать, пособие, которое я читаю, не объясняет, как оценивать (я пытаюсь учиться самостоятельно, без работы для меня) и google hasn ' Было очень полезно.Как оценить токены в C?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char conta[255];
int n1;
int n2;
int result;
char op;
printf("Introduza uma expressao numerica: ");
gets(conta);
sscanf(conta, "%d %c %d", &n1, &op, &n2);
char* token = strtok(conta, "+-*/");
while (token) {
printf("token: %s\n", token);
token = strtok(NULL, "+-*/");
}
if(op == '+'){
printf("%d", result=n1+n2);
}else if(op == '-'){
printf("%d", result=n1-n2);
}else if(op == '*'){
printf("%d", result=n1*n2);
}else if(op == '/'){
printf("%d", result=n1/n2);
}
}
Это то, что я имею в коде до сих пор. ЛЮБАЯ помощь была бы высоко оценена, спасибо.
Исследуйте рекурсивные парные анализаторы. –