这道题小D不思其解!请来帮帮!
#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<=1000;++i)/*最多做1000道题,够了吧?*/ { 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("%.2f",&t);break; default: break; } if(t==c) { printf("-------------------------------Right!"); CountRight++; } else printf("-------------------------------Wrong!"); printf("\n\t0--返回,1--继续\n"); scanf("%d",&temp); //cin>>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; }