编程高手帮我弄个源程序

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:49:13
1、利用栈求表达式的值,可供小学生作业,并能给出分数。
要求:
建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价
谁能做出符合要求的程序,悬赏分加倍。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 30 /*题目数*/
#define MAX 100 /*最大数*/

char op(int i,int a,int b,double *result) {
switch (i)
{
case 0:
*result = a + b;
return '+';
case 1:
*result = a - b;
return '-';
case 2:
*result = a * b;
return '*';
case 3:
if(b) *result = a / (double)b;
else *result = -1.0;
return '/';
}
return 0;
}
int main()
{
int a,b,i,rgt=0;
double result,uresult,score=0.0;
srand((unsigned)time(NULL)); /*设置随机数种子*/
for(i=0;i<N;i++) {
a=rand()%MAX;
b=rand()%MAX;
printf("%d%c%d=",a,op(rand()%4,a,b,&result),b);
scanf("%lf",&uresult);
if(uresult==result) printf("正确\n"),rgt++;
else printf("错误,正确答案是:%.3lf\n",result);
}