C++要求随机产生一位数的加减乘除,其中除数不能为0,如除不尽,应重新选题。最后算出正确率。求大神帮改

#include "iostream.h"
#include "stdlib.h"
#include "time.h"

int main()
{
int a,b,numOfQues=0,numOfRight=0;
char inquiry;
srand(time(NULL));
cout<<"欢迎做个位数的加减法:"<<endl;
do
{
int temp=rand()%4;
a=rand()%10;
b=rand()%10;
switch(temp)
{
case 0:
{
int ans;
cout<<a<<'+'<<b<<'=';
cin>>ans;
if(ans==(a+b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}
else
cout<<"打错了请再接再厉!"<<endl;
break;
}
case 1:
{
int ans;
cout<<a<<'-'<<b<<'=';
cin>>ans;
if(ans==(a-b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}
else
cout<<"打错了请再接再厉!"<<endl;
break;
}
case 2:
{
int ans;
cout<<a<<'*'<<b<<'=';
cin>>ans;
if(ans==(a*b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}
else
cout<<"打错了请再接再厉!"<<endl;
break;
}
case 3:
{
int ans;
if(b==0)
{
continue;
}

else
{
cout<<a<<'/'<<b<<'=';
cin>>ans;
if(a%b!=0)
{
cou<<"输出错误,请重新选择"<<endl;
break;
}

else if(ans==(a/b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}
else
cout<<"打错了请再接再厉!"<<endl;
}

break;
}
}
numOfQues++;
cout<<"还要再做一道题吗?(n或者N表示不需要)"<<endl;
cin>>inquiry;
}while(inquiry!='n'&&inquiry!='N');
cout<<"你的正确率为:"<<numOfRight*100/numOfQues<<"% 再见!"<<endl;
return 0;
}

就是除法这一块问题超多啊! 还有 怎么在重新选题的情况下 不增加intOfQues?

假设用户小心的输入,那么我忽略由于输入不当造成的问题。实际上,也没有多少错误,修改后:
#include <iostream>
#include <stdlib.h>
#include <time.h>

int main()
{
using namespace std;
int a,b,numOfQues=0,numOfRight=0;
char inquiry;
srand(time(NULL));
cout<<"欢迎做个位数的加减法:"<<endl;
do {
int ans;
int temp=rand()%4;
a=rand()%10;
b=rand()%10;
switch(temp)
{
case 0:
{
cout<<a<<'+'<<b<<'=';
cin>>ans;
if(ans==(a+b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}else
cout<<"打错了请再接再厉!"<<endl;
numOfQues++;
break;
}
case 1:
{
cout<<a<<'-'<<b<<'=';
cin>>ans;
if(ans==(a-b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}
else
cout<<"打错了请再接再厉!"<<endl;
numOfQues++;
break;
}
case 2:
{
cout<<a<<'*'<<b<<'=';
cin>>ans;
if(ans==(a*b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}else
cout<<"打错了请再接再厉!"<<endl;
numOfQues++;
break;
}
case 3:
{
if(b==0)
continue;
else{
cout<<a<<'/'<<b<<'=';
if(a%b!=0)
{
cout<<"输出错误,请重新选择"<<endl;
break;
}
cin>>ans;
if(ans==(a/b))
{
numOfRight++;
cout<<"恭喜你答对了!"<<endl;
}else
cout<<"打错了请再接再厉!"<<endl;
numOfQues++;
}
}
}
cout<<"还要再做一道题吗?(n或者N表示不需要)"<<endl;
cin>>inquiry;
}while(inquiry!='n'&&inquiry!='N');
cout<<"你的正确率为:"<<numOfRight*100/numOfQues<<"% 再见!"<<endl;
return 0;
}追问

只能在每个case里加题目数啊 好吧 感觉好麻烦。。 谢了

温馨提示:答案为网友推荐,仅供参考