说明:
将引入的两个运算元与运算子计算,并回传结果。
int get_value(int op1, int op2, char op) {
//printf("(%d %c %d)\n", op1, op, op2);
switch (op) {
case '+':
return op1 + op2;
case '-':
return op1 - op2;
case '*':
return op1 * op2;
case '/':
return op1 / op2;
case '%':
return op1 % op2;
default:
return 0;
}
}
说明:
将引入的字串,用相反的顺序计算,并将每次计算结果存入堆叠,等待输出或引用。
void Calculation(char *str) {
char stack[MAX];
int top = 0, j = 0, i;
for (i = strlen(str) - 1; i >= 0; i--) {
// printf("\n%c\n", str[i]);
switch (str[i]) {
case '+':
case '-':
case '*':
case '/':
case '%':
stack[top - 1] = get_value(stack[top], stack[top - 1], str[i]);
top--;
continue;
//遇到运算符号时,将堆叠的前两个数值做运算,
//被计算的两个空间移除,存入计算结果。
default:
stack[++top] = str[i] - 48;
continue;
//遇到数值时,减掉48使其为数字型态的真数,存入堆叠空间。
}
}
printf("%s=%d\n",str ,stack[top]);
//结果
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX 20
int main() {
char str1[MAX] = {"-+2/*3222"};
char str2[MAX] = {"-+-/421*23*41"};
//测资1,2
Calculation(str1);
Calculation(str2);
return 0;
}
1:
2:
>>: [Golang]同步工具-sync包的Cond-心智图总结
网页呈现若有内文有「标题+内文的清单」会怎麽排版呢? 可以使用 description list 哦...
接续着昨天的进度,首先可以先准备你的程序,而我在github 上有放上范例: https://git...
您的订阅是我制作影片的动力 订阅点这里~ 若内容有误,还请留言指正,谢谢您的指教 ...
接续昨天~ 第四行id.count>0是做说明若是realm里的资料大於0比(因为阵列是从0开...
And So It Is. 其实想说一些三八的话,BUT 没有 FU XDDD 好啦三十天 ya!...