/* 函数功能:求一个后缀表达式的值 */ double evalpost(char f[]); /* 函数功能:判断一个字符是否为运算符 */ int is_operation(char op); /* 函数功能:将一个中缀表达式e转换为与它等价的后缀表达式f */ void postfix(char e[], char f[]); /* 函数功能:求运算符的优先级 */ int priority(char op); /* 函数功能:将数字字符串转变成相应的数 */ double readnumber(char f[], int *i); /* 函数功能:判断表达式括号是否匹配 */ int match_kuohao(char c[]); 为这段代码编写测试用例
时间: 2024-04-02 09:33:15 浏览: 127
后缀表达式求值rocessing-m开发笔记
针对每个函数,可以编写以下测试用例:
1. evalpost(char f[])
- 输入:f[] = "5 6 +",预期输出:11.0
- 输入:f[] = "2 3 * 4 / 5 +",预期输出:5.5
- 输入:f[] = "3 4 2 * 1 5 - 2 3 ^ ^ / + ",预期输出:3.0001220703125
2. is_operation(char op)
- 输入:op = '+',预期输出:1
- 输入:op = '9',预期输出:0
- 输入:op = '(',预期输出:0
3. postfix(char e[], char f[])
- 输入:e[] = "3+4*2/(1-5)^2",预期输出:f[] = "342*15-2^/+"
- 输入:e[] = "2+3*4",预期输出:f[] = "234*+"
- 输入:e[] = "(3+4)*2-5",预期输出:f[] = "34+2*5-"
4. priority(char op)
- 输入:op = '+',预期输出:1
- 输入:op = '*',预期输出:2
- 输入:op = '^',预期输出:3
5. readnumber(char f[], int *i)
- 输入:f[] = "123 456",*i = 0,预期输出:123.0,更新后*i = 3
- 输入:f[] = "2.3 4.5",*i = 0,预期输出:2.3,更新后*i = 3
- 输入:f[] = "0.123 456",*i = 0,预期输出:0.123,更新后*i = 5
6. match_kuohao(char c[])
- 输入:c[] = "3+4*2/(1-5)^2",预期输出:1
- 输入:c[] = "(3+4)*2-5",预期输出:1
- 输入:c[] = ")3+4*2/(1-5)^2(",预期输出:0
阅读全文