发布网友
共1个回答
热心网友
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(void)
{
int count=0; //计数器
int num1,num2; //操作数1和操作数2
int oper; //运算符
int ans; //输入的答案
srand( (unsigned)time( NULL ) );
while(count<10)
{
num1=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
num2=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
oper=(int)((3*rand()/(RAND_MAX+1.0))+1); //1-4之间的随机数
switch(oper)
{
case 1:
{
printf("%d+%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1+num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
case 2:
{
while(num1-num2<0) //若差小于0,重新生成num1和num2
{
num1=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
num2=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
}
printf("%d-%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1-num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
case 3:
{
printf("%d*%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1*num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
case 4:
{
while((num2==0)||(num1%num2!=0)) //若除数为 0 或者除数不能够整除除数,重新生成num1和num2
{
num1=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
num2=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
}
printf("%d/%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1/num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
}
count++;
}
}