哪位大神帮我看看程序出了什么错误,可以出黑框,但不出结果
#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;
}