哪位大神帮我看看程序出了什么错误,可以出黑框,但不出结果

m0_46658103 2020-03-26 04:29:50
#include<cstdlib> #include<ctime> #include<conio.h> #include<iostream> using namespace std; const int N=10; double add(int min,int max,int n); double sub(int min,int max,int n); double mul(int min,int max,int n); double div(int min,int max,int n); void main() { srand((unsigned)time(NULL));//初始化随机数发生器 int imin,imax,k; double s; char ch='1'; while(ch!='0'); { cout<<"\t---------小学生四则运算练习器---------\n"; cout<<"\n请选择运算类型"; cout<<"\n\n"; cout<<"\t\t0.结束\n" <<"\t\t1.加法运算\n"<<"\t\t2.减法运算\n" <<"\t\t3.乘法运算\n" <<"\t\t4.除法运算\n"; cout<<"\t\t请选择 (0-4):"; ch=getch(); while(ch=='0') break; while(ch>'4') continue; cout<<"\n\n"; cout<<"\n请选择运算数范围的类型:"; cout<<"\n\n"; cout<<"\n\t\t1 0---9\n" <<"\t\t2 0---99\n" <<"\t\t3 0---999\n" <<"\t\t4 0---9999\n"; cin>>k; switch(k) { case 1:imin=0,imax=9;break; case 2:imin=0,imax=99;break; case 3:imin=0,imax=999;break; case 4:imin=0,imax=9999;break; } switch(ch) { case'1'://加法运算 s=add(imin,imax,N); break; case'2'://减法运算 s=sub(imin,imax,N); break; case'3'://乘法运算 s=mul(imin,imax,N); break; case'4'://除法运算 s=div(imin,imax,N); break; }// cout<<"本次测验得分:"<<s<<endl; system("pause"); } while(ch!='0'); } double add(int min,int max,int n) { int a,b,c,ans,ok=0; for(int i=0;i<n;i++) { a=rand()%(max-min+1)+min; b=rand()%(max-min+1)+min; //计算标准答案,显示题目,用户回答 c=a+b; cout<<"第"<<i+1<<"题:"<<a<<"+"<<b<<"="; cin>>ans; for(int j=0;j<2;j++) { if(ans!=c) { cout<<"答案错误,请重新输入!"<<"\t"<<"第"<<i+1<<"题:"<<a<<"+"<<b<<"="; cin>>ans; } else ok++;continue; } if(ans!=c) cout<<"正确结果为"<<c<<endl; } return ok*10.0/2; } double sub(int min,int max,int n) { int a,b,c,ans,ok=0; for(int i=0;i<n;i++){ //产生两个操作数 a=rand()%(max-min+1)+min; b=rand()%(max-min+1)+min; if(a<b) c=a,a=b,b=c; //计算标准答案,显示题目,用户回答 c=a-b; cout<<"第"<<i+1<<"题:"<<a<<"-"<<b<<"="; cin>>ans; for(int j=0;j<2;j++) { if(ans!=c) { cout<<"答案错误,请重新输入!"<<"\t"<<"第"<<i+1<<"题:"<<a<<"-"<<b<<"="; cin>>ans; } else ok++;continue; } if(ans!=c) cout<<"正确结果为"<<c<<endl; } return 10.0*ok/2; } double mul(int min,int max,int n) { int a,b,c,ans,ok=0; for(int i=0;i<n;i++)//产生两个操作数 { a=rand()%(max-min+1)+min; b=rand()%(max-min+1)+min;//计算标准答案,显示题目,用户回答 c=a*b; cout<<"第"<<i+1<<"题:"<<a<<"*"<<b<<"="; cin>>ans; for(int j=0;j<2;j++) { if(ans!=c) { cout<<"答案错误,请重新输入!"<<"\t"<<"第"<<i+1<<"题:"<<a<<"*"<<b<<"="; cin>>ans; } else ok++;continue; } if(ans!=c) cout<<"正确答案为"<<c<<endl; } return 10.0*ok/2; } double div(int min,int max,int n) { int a,b,c,ans,ok=0; for(int i=0;i<n;i++) { //产生两个操作数 do { a=rand()%(max-min+1)+min; b=rand()%(max-min+1)+min; if(a==0)a+=1; if(b==0)b+=1; if(a<b) { c=a; a=b; b=c; } } while(a%b!=0);//计算标准答案,显示题目,用户回答。 c=a/b; cout<<"第"<<i+1<<"题:"<<a<<"/"<<b<<"="; cin>>ans; for(int j=0;j<2;j++) { if(ans!=c) { cout<<"答案错误,请重新输入!"<<"\t"<<"第"<<i+1<<"题:" <<a<<"/"<<b<<"="; cin>>ans; } else ok++;continue; } if(ans!=c) cout<<"正确结果为"<<c<<endl; } return 10.0*ok/2; }
...全文
14 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧