[此贴子已经被作者于2005-6-20 13:56:07编辑过]
[此贴子已经被作者于2005-6-20 13:56:07编辑过]
我实在VC下面编译的,在TC下面不支持中文,提示信息比较难看,我发上来你参考一下,把中文改为英文就好了,程序除了除法运算之外,其它的运算没问题。 #include <stdlib.h> #include <stdio.h> #include <time.h> #include <conio.h> #include <process.h>
/*产生随机数(整数),位于区间[a,b]或者[b,a]*/ int randInt(int a, int b) { if(a<b) return a + rand()%(b-a+1); else if(a>b) return b + rand()%(a-b+1); else // a==b return a; }
int main() { int a=1, b=1,i,j; int t; float c=1.0; int n,m,N; int temp; int CountRight=0,CountWrong=0; while(1) { srand(time(0)); /*保证每次运行产生的随机数都不一样*/ system("cls");/*清屏*/ CountRight=0; printf("\n"); for(j=0;j<25;j++) printf("*"); printf("欢迎使用小学生四则运算测试系统"); for(j=0;j<25;j++) printf("*"); printf("\n\t\t1:加法 2:减法 3:乘法 4:除法 5:退出\n\n"); for(j=0;j<55;j++) printf("*"); printf(" seeker 2005.06.09 ******"); printf("请选择运算法则: "); scanf("%d",&m); while(m<=0||m>=6) { printf("-------------------选择错误!重新选择!"); scanf("%d",&m); }
if(m==5) exit(1);/*退出系统*/
printf("\t\t (请选择级别) 1:一级 2:二级 3:三级 "); scanf("%d",&n); while(n<=0||n>=4) { printf("-------------------选择错误!重新选择!"); scanf("%d",&n); } /*************/ switch(m)/*判断运算规则*/ { case 1:printf(" 进入加法 %d 级练习====>(在后面输入结果)\n\n",n);break; case 2:printf(" 进入减法 %d 级练习====>(在后面输入结果)\n\n",n);break; case 3:printf(" 进入乘法 %d 级练习====>(在后面输入结果)\n\n",n);break; case 4:printf(" 进入除法 %d 级练习====>(在后面输入结果)\n\n",n);break; default: break; } switch(n)/*判断级别*/ { case 1:N=10;break; case 2:N=50;break; case 3:N=100;break; default: break; } for(i=1; i<=200;++i)/*最多做200道题,够了吧?不够自己加*/ { a=randInt(1,N); b=randInt(1,N); switch(m)/*判断运算规则*/ { case 1: printf(" 第%d%题:%d + %d =? ",i,a,b); c=a+b; scanf("%d",&t);break; case 2: printf(" 第%d%题:%d - %d =? ",i,a,b); c=a-b; scanf("%d",&t);break; case 3: printf(" 第%d%题:%d * %d =? ",i,a,b); c=a*b; scanf("%d",&t);break; case 4: printf(" 第%d%题:%d / %d =? ",i,a,b); c=(float)a/b; scanf("%f",&t);break; default: break; } if(t==c) { printf("-------------------------------Right!"); CountRight++; } else printf("-------------------------------Wrong!"); printf("\n\t0--返回,1--继续\n"); scanf("%d",&temp); if(temp==0) { printf("\t\t\t\t\t\t总共做题%d条。其中:对%d条,错%d条\n",i,CountRight,i-CountRight); printf("\t\t\t\t\t\t正确率为:%.2f%%",100*(float)CountRight/i); getch(); break; } } } return 0; }