/* 函数功能:求一个后缀表达式的值 / 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[]); 为这段代码编写C语言测试代码,要求在同一个main文件里测试,不需要输入
时间: 2024-04-02 11:32:02 浏览: 100
后缀表达式求值rocessing-m开发笔记
以下是一份可能的测试代码,可以在同一个main文件里进行测试:
#include <stdio.h>
#include <string.h>
double evalpost(char f[]);
int is_operation(char op);
void postfix(char e[], char f[]);
int priority(char op);
double readnumber(char f[], int i);
int match_kuohao(char c[]);
int main() {
char e[100], f[100];
double result;
int match;
// 测试evalpost函数
strcpy(f, "23+4*");
result = evalpost(f);
printf("后缀表达式的值为:%f\n", result);
// 测试is_operation函数
char op = '+';
if (is_operation(op)) {
printf("%c是运算符\n", op);
} else {
printf("%c不是运算符\n", op);
}
// 测试postfix函数
strcpy(e, "2+3*4");
postfix(e, f);
printf("转换成后缀表达式为:%s\n", f);
// 测试priority函数
op = '+';
int p = priority(op);
printf("%c的优先级为:%d\n", op, p);
// 测试readnumber函数
strcpy(f, "3.14");
double num = readnumber(f, 0);
printf("转换成的数字为:%f\n", num);
// 测试match_kuohao函数
strcpy(e, "(2+3)*4");
match = match_kuohao(e);
if (match) {
printf("括号匹配\n");
} else {
printf("括号不匹配\n");
}
return 0;
}
阅读全文