测试:
1.输入题目时,如果用户输入负数。
该问题可以解决。
2.输入题目时,如果用户输入0。
该问题可以解决。
3.输入选择时,如果用户输入的范围不是1或者2。
对于是否包含乘除法的选项只有1和2两个选项,当输入3或者其他数字时,程序默认选择了2.
更改后:
当用户输入的选择不是1或者2时,会提示用户并通知用户重新输入。运行结果如下:
4.对于选择是否可以包含余数的选择时,与上例的结果相似,解决方法也相同。
更改后的代码:
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void contain()
{
int x,y;
int z,yushu;
x=rand()%100;
y=rand()%100;
z=rand()%4;
if(yushu==1)
{
switch (z)
{
case 0:
cout<<x<<'+'<<y<<'='<<endl;
break;
case 1:
cout<<x<<'-'<<y<<'='<<endl;
break;
case 2:
cout<<x<<'*'<<y<<'='<<endl;
break;
case 3:
cout<<x<<'/'<<y<<'='<<endl;
break;
}
}
else if((x%y)!=0)
{
x=x-x%y;
switch (z)
{
case 0:
cout<<x<<'+'<<y<<'='<<endl;
break;
case 1:
cout<<x<<'-'<<y<<'='<<endl;
break;
case 2:
cout<<x<<'*'<<y<<'='<<endl;
break;
case 3:
cout<<x<<'/'<<y<<'='<<endl;
break;
}
}
}
void nocontain()
{
int x,y;
int z;
x=rand()%100;
y=rand()%100;
z=rand()%2;
switch (z)
{
case 0:
cout<<x<<'+'<<y<<'='<<endl;
break;
case 1:
cout<<x<<'-'<<y<<'='<<endl;
break;
}
}
int main()
{
srand((unsigned)time(NULL));
int i,num,mul,yushu,jianju;
cout<<"****************欢迎使用本程序****************"<<endl;
cout<<"请输入打印的间距:(1~5)"<<endl;
cin>>jianju;
cout<<"----------------------------------------------"<<endl;
cout<<"请输入题目的数目:"<<endl;
cin>>num;
if(num<=0)
{
cout<<"输入有误,请重新输入:"<<endl;
cin>>num;
}
cout<<"----------------------------------------------"<<endl;
cout<<"请选择是否包含乘除法:"<<endl;
cout<<"1 .是"<<endl;
cout<<"2 .否"<<endl;
cin>>mul;
while((mul!=1)&&(mul!=2))
{
cout<<"请重新输入选择:"<<endl;
cin>>mul;
}
cout<<"----------------------------------------------"<<endl;
if(mul==1)
{
cout<<"请选择除法是否可以有余数:"<<endl;
cout<<"1 .是"<<endl;
cout<<"2 .否"<<endl;
cin>>yushu;
while((yushu!=1)&&(yushu!=2))
{
cout<<"请重新输入选择:"<<endl;
cin>>yushu;
}
cout<<"----------------------------------------------"<<endl;
}
if(mul==1)
{
for(i=0;i<num;i++)
{
contain();
}
}
else
for(i=0;i<num;i++)
{
nocontain();
}
return 0;
}