本程序由我个人用C语言独立编写完成,能自动生成整数及真分数的四则运算,同时避免了负数的结果出现,也避免了除数为0的情况。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int c=0;
srand((unsigned int)time(NULL));
int d;
while(c<30)
{
printf("\n------ 四则运算------\n");
printf("1. 整数四则运算\n");
printf("2. 真分数四则运算\n");
printf("请输入1-2选择:");
scanf("%d",&d);
if(d==1)
{
printf("开始产生整数四则运算:");
int a=0;
int b=0;
int sum=0;
int ANSWER=0;
a=0+rand()%10;
b=0+rand()%10;
int fu=0;
fu=((0+rand()%4)+4)%4;
//printf("%d",fu);
while(a<b&&fu==1)
{
a=0+rand()%10;
b=0+rand()%10;
}
while(b==0&&fu==3)
{
a=0+rand()%10;
b=0+rand()%10;
}
switch(fu)
{
case 0:printf("%d+%d=",a,b);
scanf("%d",&ANSWER);
break;
case 1:printf("%d-%d=",a,b);
scanf("%d",&ANSWER);
break;
case 2:printf("%d*%d=",a,b);
scanf("%d",&ANSWER);
break;
case 3:printf("%d/%d=",a,b);
scanf("%d",&ANSWER);
break;
}
}
if(d==2)
{
printf("开始产生真分数四则运算:");
int x=0,y=0,g=0,h=0,fu=0;
int ANSWER=0;
x=0+rand()%10;
y=0+rand()%10;
while(y==0||x>y)
{
x=0+rand()%10;
y=0+rand()%10;
}
g=0+rand()%10;
h=0+rand()%10;
while(h==0||g==0||g>h)
{
g=0+rand()%10;
h=0+rand()%10;
}
fu=((0+rand()%4)+4)%4;
//printf("%d",fu);
while((x/y)<(g/h)&&fu==2)
{
g=0+rand()%10;
h=0+rand()%10;
}
switch(fu)
{
case 0:printf("%d/%d+%d/%d=", x,y,g,h);
scanf("%d",&ANSWER);
break;
case 1:printf("%d/%d-%d/%d=", x,y,g,h);
scanf("%d",&ANSWER);
break;
case 2:printf("%d/%d*%d/%d=",x,y,g,h);
scanf("%d",&ANSWER);
break;
case 3:printf("%d/%d/%d/%d=", x,y,g,h);
scanf("%d",&ANSWER);
break;
}
}
}
c++;
}