冰天雪地裸求一道c语言编程题

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:13:30
输入一个算术表达式 操作数为实数,运算+-*/小括号都要包括,编写程序实现
1 生成表达式二叉数
2 根据表达式二叉数求表达式的值
3 先序遍历表达式二叉数
4 中序遍历表达式二叉数,要恢复必要的括号
5 后序遍历表达式二叉数,根据后序遍历序列(逆波兰式)求表达式,要求能用文件形式存放表达式二叉数,同时能从文件中读入保存的表达式二叉数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
for (;;){
switch (menu()){
case '1':test();break;
case '2':practise();break;
case '3':exit(0);
}
}
}
menu()
{
char c;
do{
clrscr();
printf("\n 1.测试\n");
printf(" 2.练习\n");
printf(" 3.退出\n");
printf("\n请选择(1或2或3):");
c=getche();
}while(c<'1'||c>'3');
return c;
}
test()
{
int ts,i,m,n,s,r=0;
ts=numsoftest();
randomize();
for (i=1;i<=ts;i++){
do {
m=num();n=num();
}while ((m+n)>9);
printf("%d) %d+%d=",i,m,n);
scanf("%d",&s);
if (s==m+n) r++;
}
printf("成绩:%d\n",100*r/ts);
printf("按任意键继续...");